Skip to content

Commit 05cbf11

Browse files
committed
Merge pull request #2982 from bicpi/fix_cookbook_dynamic_form_modfication_example
[cookbook/form/dynamic_form_modification] Fix sample code
2 parents 4a0990c + b4baf55 commit 05cbf11

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

cookbook/form/dynamic_form_modification.rst

+7-11
Original file line numberDiff line numberDiff line change
@@ -481,8 +481,8 @@ The type would now look like::
481481
namespace Acme\DemoBundle\Form\Type;
482482

483483
// ...
484-
Acme\DemoBundle\Entity\Sport;
485-
Symfony\Component\Form\FormInterface;
484+
use Acme\DemoBundle\Entity\Sport;
485+
use Symfony\Component\Form\FormInterface;
486486

487487
class SportMeetupType extends AbstractType
488488
{
@@ -493,32 +493,28 @@ The type would now look like::
493493
;
494494

495495
$formModifier = function(FormInterface $form, Sport $sport) {
496-
$positions = $data->getSport()->getAvailablePositions();
496+
$positions = $sport->getAvailablePositions();
497497

498498
$form->add('position', 'entity', array('choices' => $positions));
499-
}
499+
};
500500

501501
$builder->addEventListener(
502502
FormEvents::PRE_SET_DATA,
503-
function(FormEvent $event) {
504-
$form = $event->getForm();
505-
503+
function(FormEvent $event) use ($formModifier) {
506504
// this would be your entity, i.e. SportMeetup
507505
$data = $event->getData();
508506

509-
$formModifier($event->getForm(), $sport);
507+
$formModifier($event->getForm(), $data->getSport());
510508
}
511509
);
512510

513511
$builder->get('sport')->addEventListener(
514512
FormEvents::POST_BIND,
515513
function(FormEvent $event) use ($formModifier) {
516514
// 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)
518516
$sport = $event->getForm()->getData();
519517

520-
$positions = $sport->getAvailablePositions();
521-
522518
// since we've added the listener to the child, we'll have to pass on
523519
// the parent to the callback functions!
524520
$formModifier($event->getForm()->getParent(), $sport);

0 commit comments

Comments
 (0)