Английский не мой родной язык, извините за это.
У меня есть объект meet (rendezVous), и в этом объекте у меня есть два других сопоставленных объекта doctor (docteur) и клиент (клиент).
Я хочу изменить список врачей при выборе клиента.
Для этого я создаю события формы в свой RendezVousType, но проблема заключается в том, когда я выбираю клиента, объект клиента пуст в моем модулеModifier.
public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('client', EntityType::class, array( 'class' => 'AppBundle:Client', 'placeholder' => '', )); $formModifier = function (FormInterface $form, Client $client = null) { $idEspece = null === $client ? 0 : $client->getId(); $form->add('docteur', EntityType::class, array( 'class' => 'AppBundle:Docteur', 'placeholder' => '', 'query_builder' => function (DocteurRepository $er) use ($idEspece) { return $er->getByClientEspece($idEspece); }, )); }; $builder->addEventListener( FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($formModifier) { $data = $event->getData(); $formModifier($event->getForm(), $data->getClient()); } ); $builder->get('client')->addEventListener( FormEvents::POST_SUBMIT, function (FormEvent $event) use ($formModifier) { $client = $event->getForm()->getData(); $formModifier($event->getForm()->getParent(), $client); } ); }
Когда я устанавливаю значение по умолчанию для $ idEspece, построитель запросов возвращает правильный список.