GetModelType:
class GetModelType extends AbstractType { { $builder 'class' => Brand::class, 'placeholder' => '', )); ; $formModifier = function (FormInterface $form, Brand $brand = null) { 'class' => Model::class, 'placeholder' => '', 'choices' => $models, )); }; $builder->addEventListener( FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($formModifier) { $data = $event->getData(); $formModifier($event->getForm(), $data->getModels()); } ); $builder->get('brandName')->addEventListener( FormEvents::POST_SUBMIT, function (FormEvent $event) use ($formModifier) { $brand = $event->getForm()->getData(); $formModifier($event->getForm()->getParent(), $brand); } ); } public function configureOptions(OptionsResolver $resolver) { 'data_class' => Brand::class, )); } // ... }
Controller:
/** * @Route("/aaa", name="create") * @param Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function createAction(Request $request) { $meetup = new Brand(); $form = $this->createForm(GetModelType::class, $meetup); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { } return $this->render( 'default/create.html.twig', ); }
Próbowałem wykorzystać przykład z dokumentacji,ale pojawia się bład:
Type error: Argument 2 passed to AppBundle\Form\GetModelType::AppBundle\Form\{closure}() must be an instance of AppBundle\Entity\Brand or null, instance of Doctrine\Common\Collections\ArrayCollection given, called in /home/.../src/AppBundle/Form/GetModelType.php on line 49
Mógłby mi ktoś wskazać gdzie popełniłem błąd,bo poruszam się tu po omacku
