可以在Symfony 2中的树枝寺内动态更改链接的href

时间:2015-07-02 02:33:10

标签: html symfony twig

我已经在我网站上的菜单上工作了一段时间,我一直在问这个菜单很多问题。我的想法是我的菜单选择了我的所有项目并单击我的修改或删除按钮,同时执行所选项目所需的操作。

到目前为止,我找到了两种可能的方法:

- 使用选择和三个按钮(添加,修改,删除)的表单

- 为每个按钮添加一个链接,并在循环中生成选择

我认为更合乎逻辑的选项是第二个选项,但问题是我的链接必须发送所选项目的ID。

由于twig为你生成了html,一旦它生成了,twig就不能再了,所以我不能说根据我选择的项目改变链接!

我知道必须有一种方法可以用Javascript来解决这个问题,但是,实际上,我宁愿使用一个表格,天堂如果在这种情况下似乎有些奇怪,因为表格已经知道哪个项目是选中并且很容易使用控制器重定向下一页的修改按钮并删除项目。

如果页面的链接发生变化,我需要更改我的javascript,这是我的oder sollution不会发生的事情。

那么,还有另外一种方法可以在没有一些javascript的情况下使用链接制作我想要的东西吗?如果没有,我会采取我的其他解决方案。

1 个答案:

答案 0 :(得分:0)

以这种方式定义表单:

$form = $this->createFormBuilder($task)
->add('project', 'choice', array(
    'choices' => array('1' => 'Project 1', '3' => 'Project 2')
))
->add('delete', 'submit', array('label' => 'Remove project'))
->add('update', 'submit', array('label' => 'Update project'))
->getForm();

choices甚至可以是entity字段类型。

然后在控制器中:

$projectId = $form->get('project');

if ($form->get('delete')->isClicked()) {
// ...
} elseif ($form->get('update')->isClicked()){
// ...
}