2017-05-24 122 views
-2

我symfony的3 M個新我不得不說,一票屬於 一個類別。在票據創建 的形式中,用戶將能夠選擇一個類別。實體類別和實體票的維吾爾語是「一對多」和字段類別出現在形式,但其類型是類,而不是一個簡單的屬性。 我怎麼可以把相關的是形式的字段類型的實體選擇的列表? 我是否必須創建一個控制器和表單類型來獲取propriate字段? 我真的很困惑,耗盡時間。 如果您遇到過這個問題,請給我您的解決方案。由於實體字段類型用symfony 3

+0

嗨Ryhab,最好是你張貼代碼給你的問題。雖然這個問題是特定的,但沒有代碼表明其他人可以幫助您解決問題。在你的情況下,你似乎需要查看Symfony中的表單文檔。 http://symfony.com/doc/current/forms.html(一般指南)。實體指南的形式選擇的選擇:http://symfony.com/doc/current/reference/forms/types/entity.html –

+0

@AndrewNolan我已閱讀,文檔,但我沒有找到一個解決我的問題。 – Developper

+1

正如安德魯建議,你應該從你的形式提供的代碼和兩個實體票和類別 – OlivierC

回答

0

這是一個普遍的答案,其中一個國家,一個地區之間的關係是一對(有許多領土國家)很多,應符合您機票/類別的關係。由於您缺少代碼以提供更好的答案,因此必須這樣做。

這是一個表單類型類稱爲TerritoryType內:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('name', TextType::class, [ 
      'label' => 'Territory Name', 
     ]) 
     ->add('abbrev', TextType::class, [ 
      'label' => 'Territory Abbreviation', 
     ]) 
     ->add('belongingCountry', EntityType::class, [ 
      'class'   => 'AppBundle:Address\Country', 
      'choice_label' => 'name', 
      'label'   => 'Country' 
     ]) 
     ->add('save', SubmitType::class); 
} 

在這種情況下belongingCountry是國家的實體。顯示所有國家實體,以根據國家/地區名稱進行選擇。如果您選擇在控制器內部使用論壇構建器,則在您的控制器方法中將如此。

$form = $this->createFormBuilder($territory) 
     ->add('name', TextType::class) 
     ->add('abbrev', TextType::class) 
     ->add('belongingCountry', EntityType::class , [ 
      class'   => 'AppBundle:Address\Country', 
      'choice_label' => 'name', 
      'label'   => 'Country' 
      ]) 
     ->add('save', SubmitType::class) 
     ->getForm(); 
+0

您可以編輯您的問題,以便它很好地顯示。如果有幫助,我可以提供完整的文件/類,如果你想。示例來自我的學校項目。 –