link 的 href 可以在 Symfony 2 的树枝神庙内动态更改吗
Can the href of a link be changed dynamically inside a twig temple in Symfony 2
我在我的网站上制作一个菜单已经有一段时间了,而且我一直在问很多关于这个菜单的问题。这个想法是我的菜单有一个 select 和我的所有项目,然后单击我的修改或删除按钮,同时对 selected 项目做它需要做的事情。
到目前为止,我找到了两种可能的方法:
-用一个select和三个按钮(添加、修改、删除)做一个表单
-为每个按钮做一个link并用循环
在twig中生成select
我认为更合乎逻辑的选项是第二个,但问题是我的 link 必须发送 selected 项目的 ID。
因为 twig 为你生成了 html,一旦生成,twig 就不能再生成了,所以我不能告诉 twig 根据我的 select 更改 link编辑项目!
我知道一定有办法用 Javascript 来解决这个问题,但是,说真的,我宁愿使用表格而不是天哪,如果在这种情况下看起来有点奇怪的话,因为表单已经知道哪个项目是 selected 并且很容易使用控制器在下一页重定向到修改按钮并删除项目。
如果页面的 link 发生变化,我将需要更改我的 javascript,而我的订单解决方案不会发生这种情况。
那么,有没有其他方法可以在没有 javascript 的情况下用 link 制作我想要的东西?如果没有,我就采取我的其他解决方案。
以这种方式定义表单:
$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()){
// ...
}
我在我的网站上制作一个菜单已经有一段时间了,而且我一直在问很多关于这个菜单的问题。这个想法是我的菜单有一个 select 和我的所有项目,然后单击我的修改或删除按钮,同时对 selected 项目做它需要做的事情。
到目前为止,我找到了两种可能的方法:
-用一个select和三个按钮(添加、修改、删除)做一个表单
-为每个按钮做一个link并用循环
在twig中生成select我认为更合乎逻辑的选项是第二个,但问题是我的 link 必须发送 selected 项目的 ID。
因为 twig 为你生成了 html,一旦生成,twig 就不能再生成了,所以我不能告诉 twig 根据我的 select 更改 link编辑项目!
我知道一定有办法用 Javascript 来解决这个问题,但是,说真的,我宁愿使用表格而不是天哪,如果在这种情况下看起来有点奇怪的话,因为表单已经知道哪个项目是 selected 并且很容易使用控制器在下一页重定向到修改按钮并删除项目。
如果页面的 link 发生变化,我将需要更改我的 javascript,而我的订单解决方案不会发生这种情况。
那么,有没有其他方法可以在没有 javascript 的情况下用 link 制作我想要的东西?如果没有,我就采取我的其他解决方案。
以这种方式定义表单:
$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()){
// ...
}