如何在创建表单之前从关系中传递数据?

时间:2016-12-19 09:49:44

标签: forms symfony

以下是我的表格中我正在创建新学生的部分:

  $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。

我不知道我还应该告诉我的问题。如果你能帮助我并需要更多信息,请问我。

感谢您的帮助

enter image description here

1 个答案:

答案 0 :(得分:0)

正如@Rawburner所说,您应该使用EntityType然后如果您想要更多地控制您的字段(EntityType) grupa_id ,请使用choice_namechoice_value覆盖选项。

另外,如果要在创建表单之前传递日期,可以使用FormEvents :: PRE_SET_DATA事件。现在这些解决方案将取决于您实际想要做什么。