如何删除 FOSUserBundle、Symfony 3 中所需的第二个密码?
How to remove required second password in FOSUserBundle, Symfony 3?
我试图覆盖默认的 FOS 注册表,但我没有第二个密码字段。如何从 FOS 中的必填字段中删除它,这样我就不会看到像 fos_user.password.blank
这样的错误
Official docs 救援!
例如,如果您想在注册表中添加一个 name
字段:
<?php
// src/AppBundle/Form/RegistrationType.php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
}
public function getParent()
{
return 'FOS\UserBundle\Form\Type\RegistrationFormType';
// Or for Symfony < 2.8
// return 'fos_user_registration';
}
public function getBlockPrefix()
{
return 'app_user_registration';
}
// For Symfony 2.x
public function getName()
{
return $this->getBlockPrefix();
}
}
这里还有一个关键段落:
If you don't want to reuse the fields added in FOSUserBundle by default, you can omit the getParent method and configure all fields yourself.
因此您可以省略 getParent
方法,而是在 buildForm
方法中添加所有您需要的字段。
所以有一个更简单的方法。
....
class ProfileFormType extends AbstractType
{
....
public function getParent()
{
return 'FOS\UserBundle\Form\Type\ProfileFormType';
}
$builder->remove('email');
我试图覆盖默认的 FOS 注册表,但我没有第二个密码字段。如何从 FOS 中的必填字段中删除它,这样我就不会看到像 fos_user.password.blank
Official docs 救援!
例如,如果您想在注册表中添加一个 name
字段:
<?php
// src/AppBundle/Form/RegistrationType.php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
}
public function getParent()
{
return 'FOS\UserBundle\Form\Type\RegistrationFormType';
// Or for Symfony < 2.8
// return 'fos_user_registration';
}
public function getBlockPrefix()
{
return 'app_user_registration';
}
// For Symfony 2.x
public function getName()
{
return $this->getBlockPrefix();
}
}
这里还有一个关键段落:
If you don't want to reuse the fields added in FOSUserBundle by default, you can omit the getParent method and configure all fields yourself.
因此您可以省略 getParent
方法,而是在 buildForm
方法中添加所有您需要的字段。
所以有一个更简单的方法。 ....
class ProfileFormType extends AbstractType
{
....
public function getParent()
{
return 'FOS\UserBundle\Form\Type\ProfileFormType';
}
$builder->remove('email');