2016-07-14 23 views
0

在Symfony中,我需要創建一個帶有文本字段的表單,該表單將保存從數據庫中提取的數據進行編輯。目前,我有這樣的代碼在那裏我得到一個問題與它的四個答案:Symfony使用數組中的數據構建表單文本字段

$question = $this->getDoctrine()->getRepository('QuizBundle:Question')->findOneByIdJoinedToCategory($id); 
$data = $question->getAnswers(); 

這retrives的問題和存儲在陣列收集的答案。 目前我可以使用問題數據構建表單,但是如何使用Array Collection中的答案來使用數據構建文本字段? 我也可以將數組集合轉換爲常規數組,如果有的話如何使用常規數組的數據構建文本字段? 感謝

表單生成器:

$form = $this->createFormBuilder($question) 
      ->add('Image', TextType::class) 
      ->add('Question', TextType::class) 
      ->add('answers', TextType::class, 
        array('data' => array())) 
      ->add('Submit',SubmitType::class, array('label' => 'Edit Record')) 
     ->getForm(); 

enter image description here

+0

你檢查了[EntityType](http://symfony.com/doc/current/reference/forms/types/entity.html)嗎? – Glasset

+0

@Glasset現在嘗試。使用實體類型,我從表中獲得所有答案。我只需要針對具體問題的答案。使用發佈的代碼,我設法得到數組集合中的問題和答案(我的實體與oneToMany相關),但我不知道在構建表單時如何使文本字段包含答案值。 – Otonel

+0

你必須通過'$ options'數組從控制器...這是一種方式,但有另一種方式來做到這一點,但我現在不記得了 –

回答

1

請看看這個網頁的symfony文檔http://symfony.com/doc/current/reference/forms/types/collection.html
CollectionType場是你在找什麼。

+1

類似於: ' - > add('answers',CollectionType :: class,array( 'entry_type'=> TextType :: class, 'entry_options'=> array( ' attr'=> array('class'=>'email-box') ), ))' – Otonel

+0

很高興它幫助:)一切順利! –

+0

我無法得到它的工作,因爲你可以看到我對Symfony很陌生,這種形式的建築給我頭痛。從我的帖子創建集合中的文本字段,我是否需要傳遞$ question或$ data?我在哪裏將它傳遞給add語句? – Otonel

相關問題