繁体   English   中英

Symfony 2注册表

[英]Symfony 2 registration form

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

可以说我有2个FormTypes

人员类型注册类型

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,但想重用除注册表单之外的所有内容。
在渲染完我想要的所有字段后,我只是将其添加到表单中{%执行form.person.setRendered%}

由于以下原因,accountStatus出现在表单中:

->add('accountStatus')

删除此行,您将不会在表单中看到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM