php - Symfony - FOSUserBundle 注册验证不工作

标签 php validation symfony fosuserbundle symfony-2.5

我正在使用 FOSUserBundle,我正在尝试验证电子邮件和用户名是否已经存在。否则我会收到 MySQL 重复输入错误。

我扩展了注册表单,添加了Registration 验证组。但还是不行,我总是重复输入错误。

这是我的 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

最后是我的 User 实体:

/**
 * @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

它会起作用,对我有帮助

关于php - Symfony - FOSUserBundle 注册验证不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096559/

相关文章:

javascript - 使用 jQuery 为 18 岁以上的人验证日期

php - 如何修改php源代码并重新编译?

php - 如何使每个 php 脚本实例的 session 变量唯一?

javascript - 仅允许字母数字和特殊字符的正则表达式不起作用

css - W3C CSS Validator 在 svg 规则 : "only 0 can be a unit" 上显示错误

php - Symfony2 - 使用 ArrayCollection 填充文本字段?

symfony - 在 Symfony 中转换表单字段值

forms - symfony 3 - 如何在表单中添加事件订阅者作为服务

php - 不能在 Laravel 4.2 中使用 Auth::user()

php - 在身份验证尝试中传递第二个参数后,记住登录页面上的用户凭据不起作用