1
我的ExampleUserBundle
延伸FOSUserBundle
。我重写RegistrationFormType
这样的:如何覆盖FOSUserBundle的验证规则
<?php
// Example/UserBundle/Form/Type/RegistrationFormType.php
namespace Example\UserBundle\Form\Type;
use Symfony\Component\Form\FormBuilderInterface;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;
class RegistrationFormType extends BaseType
{
public function buildForm(FormBuilderInterface $builder, array $options) {
parent::buildForm($builder, $options);
$builder->remove('username');
}
public function getName() {
return 'example_user_registration';
}
}
服务的声明:
// Example/UserBundle/Ressources/Config/services.yml
services:
example_user.registration.form.type:
class: Example\UserBundle\Form\Type\RegistrationFormType
arguments: [%fos_user.model.user.class%]
tags:
- { name: form.type, alias: example_user_registration }
,并在/app/config/config.yml:
fos_user:
db_driver: orm
firewall_name: main
user_class: Example\UserBundle\Entity\User
registration:
form:
type: example_user_registration
当我创建一个新的User
与此表格,FOSUserBundle
的基本验证规则不会覆盖。 (电子邮件 - >唯一;密码 - >超过3个字符; ...)。