Почему symfony form $ builder-> getData () = null в созданном пользователем типе? - PullRequest
0 голосов
/ 04 декабря 2018

Я использую Symfony 2.3 и propel.У меня есть форма типа ClientTyp e, и в нем объявлен тип сlient_profile

 class ClientType extends BaseClientType
    {
        protected $options = array(
            'label' => false,
            'data_class' => 'Artsofte\ClientsBundle\Model\Client',
            'name' => 'client_form'
        );

        public function buildForm(FormBuilderInterface $builder, array $options){
            $builder
                ->add('сlient_profile', 'client_profile', array(
                    'label' => FALSE
                ))
               ->add(...)
           ;
        }
    }

Форма типа сlient_profile создать в классе СlientProfileType

class СlientProfileType extends BaseСlientProfileType{

protected $options = array(
    'data_class' => 'Artsofte\DeveloperClientsBundle\Model\СlientProfile',
    'name' => 'Сlient_profile'
);

public function buildForm(FormBuilderInterface $builder, array $options){
    var_dump($builder->getData());
    $builder
        ->add('name', 'text', array(
            'label' => 'Name client',
            'attr' => array(
                'placeholder' => 'Name client'. $builder->getData()->getName()
        ))
        ->add(..............);
 }

var_dump($builder->getData()); - возврат равен нулю.Как мне заполнить $builder->getData() в форме client_profile или как еще можно перенести данные из модели client_profile в тип формы client_profile?

1 Ответ

0 голосов
/ 04 декабря 2018

в классе ClientType добавить опцию clientProfile .Эта опция добавляет - модель данных getData ()

class ClientType extends BaseClientType
    {
        protected $options = array(
            'label' => false,
            'data_class' => 'Artsofte\ClientsBundle\Model\Client',
            'name' => 'client_form'
        );

        public function buildForm(FormBuilderInterface $builder, array $options){
            $builder
                ->add('сlient_profile', 'client_profile', array(
                    'label' => FALSE,
                    'contractorProfile' => $builder->getData(),
                ))
               ->add(...)
           ;
        }
    }

, но не решила, почему в классе СlientProfileType $builder->getData() равно нулю.

...