Я дважды использую функцию createFormBuilder на одной и той же странице, которая работает с одним и тем же объектом.Моя проблема в том, что Symfony обнаружил только первую сгенерированную форму, поэтому я не могу использовать метод $form->isSubmitted() && $form->isValid()
для второй формы при отправке форм.
Я предполагаю, что это потому, чтоскрытые токены, соответствующие полю CSRF, идентичны для двух форм.
Есть ли способ сгенерировать другой токен для второй формы без его деактивации?
Две сгенерированные формы в моемview
<form name="form" method="post" class="form-delete-confirm">
<input type="hidden" name="_method" value="DELETE" />
<input type="hidden" id="form__token" name="form[_token]" value="h0i7WF2uQxi376ZF4kMm4TbuD0cE8TYPhWP9b-oNqJ4" />
</form>
<form name="form" method="post" class="form-post-confirm">
<input type="hidden" id="form__token" name="form[_token]" value="h0i7WF2uQxi376ZF4kMm4TbuD0cE8TYPhWP9b-oNqJ4" />
</form>
У меня есть два метода, которые генерируют каждую форму, например
public function createParticipantPostForm($meetingId = null, $userId = null)
{
$form = $this->createFormBuilder(null, ['attr' => ['class' => 'form-post-confirm']]);
// The action is null when one form is created form the modal, it is then defined thanks to the user click
if (null !== $meetingId && null !== $userId) {
$form = $form->setAction(
$this->generateUrl(
'meeting_participant_create', [
'meeting_id' => $meetingId,
'user_id' => $userId,
]
)
);
}
return $form->setMethod('POST')->getForm();
}
Другой точно такой же, за исключением setMethod('DELETE')
, атрибута класса и маршрута в методе generateUrl
Два метода выполняются в моем контроллере, и представления формы отправляются в представление.