Symfony3 Формы: мне удалось построить и сделать форму, как показано ниже:Symfony3 Forms: Как узнать, какая кнопка была нажата в форме?
<form action="/member/john/actions" method="post" name="form">
<input type="submit" value="Block John" name="block">
<input type="submit" value="Remove from my friends" name="remove">
<input type="hidden" value="LeiajURspTa9c8JEUYtvepki0b_CdL9dMWqEZxOYvfk" name="form[_token]" id="form__token">
</form>
При нажатии на кнопки "Block John"
или "Remove from my friends"
, контроллер направляет его в нужное место (member_friend_actions) и он может отображать значения отладки вместе с текстом "Submitted!"
, перед тем как умереть.
Мой контроллер с маршрута «member_friend_actions» устанавливается, как показано ниже:
/**
* A common post location to catch all operations like add/remove/cancel/block friends
*
* @Route("/{username}/actions", name="member_friend_actions")
* @Method("POST")
*/
public function allActionsFriendAction(Request $request, User $friend)
{
$form = $this->createAllActionsFriendForm($friend);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
//$clicked = $form->getData();
$clicked = $form->getClickedButton()
\Doctrine\Common\Util\Debug::dump($clicked);
die("Submitted!");
}
return $this->redirectToRoute('member_profile', array("username" => $friend->getUsername()));
}
Я хочу знать, какая кнопка была нажата, что привел его сюда (блок или удалить здесь, но может быть больше кнопок в других местах). Я попытался с помощью методов:
$ форма-> GetData() => что дает массив (0) {} и
$ форма-> getClickedButton() => дает NULL, поэтому не помогает.
Как это можно достичь?
Привет, Ren. Если бы мой ответ «разрешил» проблему, пожалуйста, нажмите галочку, кроме моего ответа, чтобы отметить ее как правильную. Благодаря! –