2014-01-29 87 views
3

我對Symfony很新,所以問題看起來可能有點簡單,但我需要幫助。Symfony2自定義表單域

我生成了新的包。

我在Me\MyBundle\Resources\config\routing.yml增加了一個新的途徑:

my_homepage: 
    pattern:/
    defaults: { _controller: MeMyBundle:Default:index } 

捆綁控制器看起來簡單的像這樣:

namespace Me\MyBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class DefaultController extends Controller 
{ 
    public function indexAction() 
    { 
     $form = $this->createFormBuilder() 
      ->getForm() 
     ; 
     return $this->render('MeMyBundle::index.html.twig', array(
      'form'  => $form->createView(), 
      'param1'  => 'some_string_1', 
      'param2'  => 'another string', 
     )); 
    } 
} 

在樹枝模板,我可以讀取並處理適當params,因爲我想要的。

整個操作發生在生成的表單中,其中有AJAX請求路由到另一個控制器。

我想要實現的是創建一個新的自定義表單域,它可以以相同的形式重複多次,使用不同的params

例如,我想我的indexAction()看起來會是這樣的:

public function indexAction() 
    { 
     $paramsArr_1 = array(
      'param1'  => 'some_string_1', 
      'param2'  => 'another string', 
     ); 
     $paramsArr_2 = array(
      'param1'  => 'some_string_2', 
      'param2'  => 'another fine string', 
     ); 
     $form = $this->createFormBuilder() 
      ->add(myCustomField, $paramsArr_1) 
      ->add(myCustomField_2, $paramsArr_2) 
      ->getForm() 
     ; 
     return $this->render('MeMyBundle::index.html.twig', array(
      'form'  => $form->createView() 
     )); 
    } 

是的,我沒有看到this article,但它並沒有幫助我很多。我無法得到它的工作。

任何幫助,非常感謝。

+0

'我無法讓它工作.'沒有關於您的問題的更多信息,我們無法幫助您。 –

+0

這篇文章可能也有幫助:http://www.webtipblog.com/create-a-custom-form-field-type-in​​-symfony-2/ – joe42

+0

@ n.1我試圖一步一步地關注文章,但它寫得很簡單,我的解決方案造成了很多錯誤,我不能修復。現在我已經撤消了所有的改變。我不想讓任何人爲我寫信。我認爲,也許有一些更好的教程或另一個自定義表單字段的例子,我可以看到和比較,或遵循。 – mkas

回答

0

從我所知道的表單字段擴展了基本表單類,所以你的'myCustomField'實際上可以是另一種表單。

檢查:http://symfony.com/doc/current/reference/forms/types/form.html

正如你所知道每個窗體對象連接的對象吧,所以不是你的陣列,你可以創建一個在其上設置這些值一個新的對象,然後添加表格多少使用包含不同數據的對象來計算所需時間