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