Symfony fla sh сообщение и данные не обновляются после отправки формы - PullRequest
0 голосов
/ 10 февраля 2020

Я использую модальную форму для обновления адреса. Все работает правильно, за исключением того, что сообщение fla sh не отображается или данные представления обновляются после отправки формы и, следовательно, страница перезагружается. Чтобы появилось сообщение и данные для обновления, я должен вручную обновить sh страницу.

Вот вызов модальной формы на мой взгляд:

...
          {{ include('_flashMessages.html.twig') }}
...
                    <a href="#profileAddress" data-toggle="modal" data-target="#profileAddress">Edit</a>
...
      <div id="profileAddress" tabindex="-1" class="modal fade" role="dialog">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <h4 class="modal-title">Profile address</h4>
              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
            </div>
            <div class="modal-body">
              {{ render(controller('App\\Controller\\user\\ProfileController::editAddress', { 'advert': advert.id, 'request': app.request })) }}
            </div>
          </div>
        </div>
      </div>
...

Вот функция, вызываемая для визуализации формы:

/**
 * @Route("/user/profile/show/{id}", name="user.profile.show")
 * 
 * @return Response
 */
public function show(User $user): Response
{

    $profile = $user->getProfile();

    return $this->render('user/profile/show.html.twig', array(
                                                                    'profile' => $profile,
                                                                    'bodyId' =>  'profileShow'
                                                               )
                        )
    ;

}

И, наконец, вот действие, которое я связал с моей формой для перенаправления в начальный вид:

{{ form_start(form, { 'action': absolute_url(path('advert.vehicle.create', { 'id': advert.id })), 'attr': { 'id': 'profileAddressForm' } }) }}
...

идея о том, что сообщение fla sh не отображается, а данные об адресе не обновляются в начальном виде?

Заранее спасибо за помощь.

РЕДАКТИРОВАТЬ:

Я решил 1 проблему из 2: поместив мой модальный div в начало шаблона, сообщение об успешном отображении sh теперь отображается правильно после отправки формы.

Теперь остается чтобы понять, почему данные, которые были правильно обновлены с помощью указанной формы, не обновляются, на мой взгляд. Действительно, в этом у меня есть:

...
{% set profileAddress = advert.owner.user.profile.address.street %}
...
                <div class="row">
                  <div class="col-md-10">
                    {{ form_row ( vehicleForm.situation.useProfileAddess, { 'id':'use_profil_address', 'label': "Use my profile address (" ~ profileAddress ~ ")" } ) }}
                  </div>
                  <div class="col">
                    <a href="#" data-focus=true data-backdrop="static" data-keyboard="false" data-toggle="modal" data-target="#profileAddress">Edit</a>
                  </div> 
                </div>
...

Форма обновляет адресные данные в базе данных, но они не обновляются в представлении при перезагрузке страницы после отправки формы.

1 Ответ

1 голос
/ 11 февраля 2020

Разрешено

{% set profileAddress = advert.owner.user.profile.address %}

и

{{ form_row ( vehicleForm.situation.useProfileAddess, { 'id':'use_profil_address', 'label': "Use my profile address (" ~ profileAddress.street ~ ")" } ) }}
...