PHP-Symfony-FOSUserBundle注册验证不起作用
作者:互联网
我正在使用FOSUserBundle,我正在尝试验证电子邮件和用户名是否已存在.否则,我得到MySQL重复输入错误.
我已经扩展了注册表格,添加了注册验证组.但是仍然不好,我总是会得到重复的输入错误.
这是我的RegistrationType类:
class RegistrationType extends BaseType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
"data_class" => "Tsk\FEBundle\Entity\User",
"validation_groups" => array("Registration")
));
}
public function getName()
{
return "tsk_fe_registration_form_type";
}
}
和服务定义:
<parameters>
<parameter key="tsk_fe.registration.form.type.class">Tsk\FEBundle\Form\RegistrationType</parameter>
</parameters>
<services>
<service id="tsk_fe.registration.form.type" class="%tsk_fe.registration.form.type.class%">
<tag name="form.type" alias="tsk_fe_registration_form_type"/>
<argument>%fos_user.model.user.class%</argument>
</service>
</services>
在config.yml中:
fos_user:
db_driver: orm
firewall_name: main
user_class: Tsk\FEBundle\Entity\User
registration:
form:
type: tsk_fe_registration_form_type
最后是我的用户实体:
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
* @ORM\HasLifecycleCallbacks
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
}
//..
}
解决方法:
问题在于symfony 2.5验证,请更改您的config.yml
从
framework:
validation: { enable_annotations: true }
至
framework:
validation:
enable_annotations: true
enabled: true
api: 2.4
它会起作用,对我有帮助
标签:validation,symfony,fosuserbundle,php,symfony-2-5 来源: https://codeday.me/bug/20191029/1960261.html