@@ -473,8 +473,8 @@ The type would now look like::
473
473
namespace Acme\DemoBundle\Form\Type;
474
474
475
475
// ...
476
- Acme\DemoBundle\Entity\Sport;
477
- Symfony\Component\Form\FormInterface;
476
+ use Acme\DemoBundle\Entity\Sport;
477
+ use Symfony\Component\Form\FormInterface;
478
478
479
479
class SportMeetupType extends AbstractType
480
480
{
@@ -485,32 +485,28 @@ The type would now look like::
485
485
;
486
486
487
487
$formModifier = function(FormInterface $form, Sport $sport) {
488
- $positions = $data->getSport() ->getAvailablePositions();
488
+ $positions = $sport ->getAvailablePositions();
489
489
490
490
$form->add('position', 'entity', array('choices' => $positions));
491
- }
491
+ };
492
492
493
493
$builder->addEventListener(
494
494
FormEvents::PRE_SET_DATA,
495
- function(FormEvent $event) {
496
- $form = $event->getForm();
497
-
495
+ function(FormEvent $event) use ($formModifier) {
498
496
// this would be your entity, i.e. SportMeetup
499
497
$data = $event->getData();
500
498
501
- $formModifier($event->getForm(), $sport );
499
+ $formModifier($event->getForm(), $data->getSport() );
502
500
}
503
501
);
504
502
505
503
$builder->get('sport')->addEventListener(
506
504
FormEvents::POST_BIND,
507
505
function(FormEvent $event) use ($formModifier) {
508
506
// It's important here to fetch $event->getForm()->getData(), as
509
- // $event->getData() will get you the client data (this is, the ID)
507
+ // $event->getData() will get you the client data (that is, the ID)
510
508
$sport = $event->getForm()->getData();
511
509
512
- $positions = $sport->getAvailablePositions();
513
-
514
510
// since we've added the listener to the child, we'll have to pass on
515
511
// the parent to the callback functions!
516
512
$formModifier($event->getForm()->getParent(), $sport);
0 commit comments