2014-04-14 19 views
1

你好是有可能映射的Symfony2表單對象中的字段,例如我的模板有一個名爲場:「標題」,但symfony的表單類型希望此字段爲「進步[標題]」是有可能在表單構建器中將「title」映射爲「progress [title]」?Symfony的2形態改變字段名稱

例如:

$builder->add('title') 

名稱:

public function getName() 
{ 
    return 'progress'; 
} 

控制器手柄要求現在需要 「的進展[標題]」,我想只發送 「標題」

$progress = new Progress(); 
    $form = $this->createForm(new ProgressType(), $progress); 

    $form->handleRequest($request);//here comes "title" 
+0

它,當你使用$形式 - 自動執行這種東西> CreateView的()/通過查看和顯示考慮中的形式如預期每個文檔 – skrilled

+0

但我處理Ajax請求,通過symfony的 –

+0

不會產生我建議使用生成表單的Symfony2的方式,然後適應你的JavaScript它。這種方式更加穩定,不易發生變化。 –

回答

1

這不工作: 也許你可以去除n AME?

public function getName() 
{ 
    return 'progress'; 
} 

這並不: 不然,如果你想保持你的名字,並可以登記類型的服務,你也許可以做到這一點是這樣的:使用createNamed與「空」作爲第一個參數。

$form = $formFactory->createNamed(null, 'progress', $progress); 

編輯: 對於PUT試試這個:

$form = $formFactory->createNamed(null, 'progress', $progress, array('method'=>'PUT')); 
+0

當我刪除名稱,我仍然有像[標題]表。 –

+1

那麼使用第二個例子。這工作。 –

+0

是,但我認爲這樣的形式不能處理PUT請求...... –