【问题标题】:Symfony2: calling helper in viewSymfony2:在视图中调用助手
【发布时间】:2014-10-28 04:23:17
【问题描述】:

我对 Symfony2 中的助手有疑问。我有一个工作正常的助手。而且我有一个使用 PHP 和 HTMl 制作的视图,没有 sintax 错误。

我需要创建一个 foreach,并且在该 foreach 中,我需要创建一个按钮来调用我的助手,其中包含此迭代的一些信息,如果用户单击此按钮,则使用此信息调用此助手。

有些喜欢:

foreach $i...

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

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

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

【问题讨论】:

  • 查看您的伪代码,我无法弄清楚您为什么使用 symfony2。我的意思是:Symfony2 有一个很好的表单组件,你似乎没有使用它,并且带有开箱即用的 twig 模板。为什么要使用框架,而不使用好东西?
  • " 如果用户单击此按钮,请使用此信息调用此帮助程序。" --- 这属于客户端代码 (JS)?
  • 这是一个很好的例子,如何不使用 SYMFONY...请使用表单 API,你可以用它做任何事情:symfony.com/doc/current/book/forms.html

标签: php forms symfony foreach helper


【解决方案1】:

您应该为此使用 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:Default:yourtwigfile.html.twig : 默认是默认文件夹,即 yourBundle/Resources/views,如果您在视图中有一个文件夹,例如 yourBundle/Resources/views/folder,它将是 yourBundle:folder :yourtwigfile.html.twig

然后在你的动作中的树枝文件中使用这个:

   {% for i in 0..10 %}

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

我没有对此进行测试,但它应该可以工作,我不知道你为什么要这样做,但它会根据你希望 for 运行的时间生成很多表单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    相关资源
    最近更新 更多