Symfony2:在视图中调用帮助器

时间:2014-09-03 15:26:29

标签: php forms symfony foreach helper

我在Symfony2中遇到了帮助器问题。我有一个工作正常的帮手。我有一个用PHP和HTMl制作的视图,没有sintax错误。

我需要制作一个foreach,在那个foreach中,我需要创建一个按钮来调用我的帮助程序,其中包含此迭代的一些信息,如果用户单击此按钮,请使用此信息调用此帮助程序。

有些人喜欢:

foreach $i...

<form action="<?php echo $view['entities']->HelperFunction($i) ?>"  >
                <button type="submit">Helper Call</button>
...
end foreach

我的问题是,在每次迭代中,自动调用帮助程序并执行其函数。当我点击生成的按钮时,我只需要执行帮助。

有什么想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你应该使用symfony表单,或者如果它是自定义的,你在表单中没有任何字段你只是因为某些原因想要使用一个函数,你仍然可以在你的控制器中使用symfony而不是纯PHP渲染视图将变量$ view ['entities']传递给这样的树枝:

    public function newAction(Request $request)
    {
     /* your codes */

    return $this->render('yourBundle:Default:yourtwigfile.html.twig', array(
        'view' => $view['entities'],
    ));

PS:yourBundle:默认:yourtwigfile.html.twig:默认是默认情况下的文件夹是yourBundle / Resources / views,如果你的视图里面有像yourBundle / Resources / views /文件夹这样的文件夹你将是yourBundle:folder :yourtwigfile.html.twig

然后在你的行动中的twig文件中使用:

   {% for i in 0..10 %}

   <form action="{% view.HelperFunction(i) %}"  >
            <button type="submit">Helper Call</button>
   ...
   {%endfor%}

我没有测试这个,但它应该可以工作,我不知道你为什么要这样做,但它会产生很多形式,这取决于你想要运行多长时间。