2017-05-24 119 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

您可以编辑您的问题,以便它很好地显示。如果有帮助,我可以提供完整的文件/类,如果你想。示例来自我的学校项目。 –