为什么在自定义创建的类型中使用symfony形式$ builder-> getData()= null?

时间:2018-12-04 07:06:10

标签: forms propel symfony-2.3 typeform

我使用Symfony 2.3并推进。 我的输入形式为 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());-返回值为null。 如何以$builder->getData()格式类型填写client_profile,或者如何将数据从client_profile模型转移到client_profile格式类型?

1 个答案:

答案 0 :(得分:0)

在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()为空的原因。