以下是我的表格中我正在创建新学生的部分:
$students = new students;
$form = $this->createFormBuilder($students)
->add('name', TextType::class, array('label' => 'Imię','attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px')))
->add('grupa_id', ChoiceType::class,array('choices' => $id), array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px')))
->add('save', SubmitType::class,array('label' => 'Dodaj ucznia', 'attr' => array('class' => 'btn btn-primary', 'style' => 'margin-bottom:15px')))
->getForm();
我与学生实体和Grupa实体之间有关系。
当我添加新学生时,我想只选择他一组。所以我需要创建ChoiceType字段并传递组ID。但我不知道该怎么做。如上所述它当然不起作用。
我稍后会这样展示:
$studentsList = $em->getRepository('AppBundle:students')->findBy(array('grupa_id' => $id));
$Grupa = $em->getRepository('AppBundle:Grupa')->Find($id);
grupa_id是学生实体中的FK。
我不知道我还应该告诉我的问题。如果你能帮助我并需要更多信息,请问我。
感谢您的帮助
答案 0 :(得分:0)
正如@Rawburner所说,您应该使用EntityType然后如果您想要更多地控制您的字段(EntityType) grupa_id ,请使用choice_name和choice_value覆盖选项。
另外,如果要在创建表单之前传递日期,可以使用FormEvents :: PRE_SET_DATA事件。现在这些解决方案将取决于您实际想要做什么。