如何使用symfony2表单按钮调用控制器函数

时间:2017-11-01 09:16:58

标签: php symfony

通常我会在symfony2中声明我的按钮:

<a href="{{ path('delete_route_name', {'id': entity.id }) }}">Delete</a>

但在这种情况下我必须使用以下语句:

$form->add('submit', 'submit', array('label' => 'Save Changes', 'attr' => array('style' => 'position: relative; left:33%')));

因为此按钮仅在某些情况下(在表单内)是必要的。

我也希望用这个按钮在控制器中调用一个函数。如何为此按钮添加控制器路径?

当然我可以使用JavaScript,但我正在寻找一个没有JavaScript的解决方案。

感谢您的反馈。

2 个答案:

答案 0 :(得分:1)

您必须将表单操作的路径添加为表单配置参数。

如果要在表单中添加<a href=""></a>链接/按钮,请查看文档以了解如何按窗口小部件(或逐行)呈现Symfony表单窗口小部件。然后,您可以在模板中的form_end(form)功能上方添加链接/按钮。

答案 1 :(得分:0)

您可以使用多个提交按钮,并在代码中执行以下操作:


        if ($form->isSubmitted() && $form->isValid()) {

            //button 1
            if ($form->get('submit_1')->isClicked()) {
                return $this->myOtherControllerAction($request, $form);
                //or $this->forward   see https://symfony.com/doc/current/controller/forwarding.html
            }
        }