2012-08-09 53 views
1

到目前爲止,我只內置形式,都涉及到實體我通常做這個如何構建它不與任何實體在Symfony2中使用formbuilder</p> <p>

$builder->add("tasks")

的一般形式然後,我這樣做

$Form = $this->createForm(new TaskType(), $entity);

現在我只想一個通用的形式,在那裏我有的選擇b oxes我可以從數據庫中加載實體。

我不堅持或綁定的形式,我只是想,當用戶選擇用戶並點擊提交,然後我去用戶頁面

在上面的表格我曾經有在用戶實體任務屬性,所以我使用add。

但我只是想希望顯示任務,whichis沒有鏈接到用戶,我可以做到這一點

$form = $this->createFormBuilder($task) 
     ->add('task', 'text') 
     ->add('dueDate', 'date') 
     ->getForm(); 

例子我上面的代碼我可以做到這一點

$form = $this->createFormBuilder() 
     ->add('task', 'text') 
     ->add('dueDate', 'date') 
     ->getForm(); 
+0

你可以創建一個通用對象並把它放在那裏嗎?像$ task = Object() – Jake 2012-08-09 03:16:54

+0

@Jake是的,但你甚至不需要那樣做 – Lusitanian 2012-08-09 03:20:21

+0

@Lusi你是什麼意思,你能給我例子 – user17 2012-08-09 03:42:51

回答

1

之前閱讀,你爲什麼會顯示<select>無所事事?也許有更好的解決方案來實現你想要的:)

無論如何,如果你的表單有一些字段與實體屬性無關,只需將選項property_path設置爲false即可。假設你想顯示<select> OT任務,我會做:

$this->createFormBuilder() 
    ->add('task', 'entity', array(
     'property_path' => false, 
     'class'   => 'Acme\HelloBundle\Entity\Task', // Full/short FQCN 
     'property'  => 'name', // Assuming your task as a property "name", 
    )) 
; 

如果因爲某些原因,你需要選擇的值(平均選擇Task對象),你可以用$form->get('task')->getData()得到的,該請求結合之後。

相關問題