2014-09-03 60 views
-1

我在Symfony2中有一個幫助器出現問題。我有一個工作正常的幫手。我有一個沒有sintax錯誤的PHP和HTMl的視圖。Symfony2:調用幫助器在視圖中

我需要做一個foreach,在那個foreach中,我需要創建一個按鈕,它會調用我的幫助器這個迭代的一些信息,如果用戶點擊這個按鈕,用這個信息調用這個幫助器。

有些人喜歡:

foreach $i... 

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

我的問題是,在每次迭代中,自動助手被稱爲他的功能執行。當我點擊生成的按鈕時,我只需要執行助手。

有什麼想法? 在此先感謝。

+1

看着你的僞代碼,我找不到爲什麼你使用symfony2。我的意思是:Symfony2有一個很好的表單組件,你似乎並沒有使用它,並且附帶了樹枝模板。爲什麼你會使用框架,而不使用好東西? – 2014-09-03 15:36:48

+1

「如果用戶點擊此按鈕,請將此信息稱爲此幫助者。」 ---這屬於客戶端代碼('JS')? – 2014-09-03 16:28:35

+0

這是一個很好的例子,如何不使用SYMFONY ...請使用表單API,你可以用它做所有事情:http://symfony.com/doc/current/book/forms.html – mate64 2014-09-03 17:41:36

回答

0

你應該使用symfony的形式,或者如果它是自定義的東西,你沒有任何字段裏面的表單,你只是由於某種原因想要使用一個函數,你仍然可以在你的控制器中使用symfony而不是純PHP其中呈現視圖傳遞變量$視圖[「實體」]到樹枝這樣的:

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文件夾/資源/ views,如果你有一個像yourBundle/Resources/views /文件夾的視圖內的文件夾,它將是yourBundle:文件夾:yourtwigfile.html.twig

然後在動作用小樹枝文件這裏面:

{% for i in 0..10 %} 

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

我沒有測試這一點,但它應該工作,我不知道爲什麼你要做到這一點,但是這取決於很多的形式,將產生你想要運行多少次。