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