2013-06-27 557 views
28

Я пытаюсь получить объект внутри собственной формы. Я ленив, помню метод getData(), но он не существует внутри формы, и я не помню, как его использовать.Как получить доступ к объекту внутри метода buildForm формы

Есть ли способ получить объект внутри метода формы, не используя прослушиватель событий?

Я имею в виду, что-то вроде этого:

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     /*some method to get the entity of the form such as getEntity????????*/ 
     $builder->add('field'); 
    } 

ответ

54

Я нашел его:

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $entity = $builder->getData(); 
     $builder->add('field'); 
    } 
+22

Пожалуйста, обратите внимание, что если вы используете тип в коллекции необходимо использовать событие форм $ builder- > addEventListener (FormEvents :: PRE_SET_DATA, функция (FormEvent $ event) use ($ builder) { /** @var YourEntity $ data */ $ data = $ Event-> GetData(); }); – nvvetal