Symfony 2注册表

时间:2014-03-31 01:57:26

标签: php forms symfony doctrine-orm

我正在尝试按照此处的指南在Symfony 2.4中创建注册表单 http://symfony.com/doc/current/cookbook/doctrine/registration_form.html

假设我有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@example.com']])
        ->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,但是除了我的注册表单之外,我想要重用除了那些之外的所有内容 在渲染了我想要的所有字段后,我只是将它添加到我的表单中 {%do form.person.setRendered%}

1 个答案:

答案 0 :(得分:0)

由于以下行,

accountStatus出现在表单中:

->add('accountStatus')

删除此行,您将无法在表单中看到它。

相关问题