2014-03-31 43 views
1

我试图创建Symfony的2.4登记表莅临指导 http://symfony.com/doc/current/cookbook/doctrine/registration_form.htmlSymfony的2登记表

以下比方说我有2个FormTypes

PersonType RegistrationType

PersonType定义特定用户的所有字段。

// PersonType 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('firstName','text',['attr'=>['placeholder'=>'First Name']]) 
     ->add('lastName','text',['attr'=>['placeholder'=>'Last Name']]) 
     ->add('email','email',['attr'=>['placeholder'=>'[email protected]']]) 
     ->add('title','choice', ['choices'=>$this->titles, 'required'=>true]) 
     ->add('phone','text',['attr'=>['placeholder'=>'(555) 555-1234']]) 
     ->add('accountStatus') 
     ->add('organization') 
     ->add('address', 'text',['attr'=>['placeholder'=>'123 Fake St']]) 
     ->add('city') 
     ->add('province','choice', ['choices'=>$this->provinces, 'required'=>true]) 
     ->add('postalCode','text',['attr'=>['placeholder'=>"A1A 1A1"]]) 
    ; 
} 

RegistrationType补充说:

// RegistrationType 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $person = new PersonType(); 
    $builder->add('person', $person); 

    $builder->add('termsAccepted','checkbox'); 

    $builder->add('submit','submit', ['attr'=>['class'=>'btn-primary'], 'label' => "Submit Account Request"]); 
} 

的问题是 - 我不希望包括在登记表上accountStatus,因为这将通过代码进行设置时,我就坚持到数据库中。当我输出我的表单时,它包括accountStatus。

在Symfony 1.4中,我只是简单地扩展了PersonForm,并取消了我不需要的任何小部件。

我是否在谈论这个错误?这是我第一个Symfony 2项目。

编辑:我发现我的情况的解决方案。我想在我的主表单中使用accountStatus,但想要重用除注册表单外的所有内容。
我只是渲染我想 {%做form.person.setRendered%}的所有字段后添加这个到我的形式

回答

0

accountStatus是出现在形式,因为这行:

->add('accountStatus') 

删除这条线,你不会看到它的形式。

+0

虽然我想要它。我的意图是在一个屏幕(管理屏幕)上使用PersonType表单,但使用RegistrationType表单作为注册表单。 – Teddy