FOSUserBundle - 验证用户名、密码或电子邮件字段 [英] FOSUserBundle - Validation for username, password or email fields

查看:48
本文介绍了FOSUserBundle - 验证用户名、密码或电子邮件字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 FOUserBundle 中,我希望能够更改用户名和密码等字段的最小长度、最大长度和非空白验证设置.

In the FOUserBundle, I would like to be able to change the validation settings for minimum length, maximum length and not blank on fields such as username and password.

我能够通过 @Assert 对我的自定义字段进行一些验证,但现在我想知道如何更改 FOSUserBundle 的用户名验证?

I was able to put some validation via @Assert on my custom fields, but now I am wondering how I could change the username validation for the FOSUserBundle?

这些字段是自动生成的,所以我无法将它们添加到我的 User 实体中...并且默认情况下,它允许像 {^| 等字符...不好看.

These fields are generated automatically, so I can't add them to my User entity... and by default, it allows characters like {^| etc... which don't look good.

推荐答案

您可以通过在包中创建新的验证文件来覆盖默认设置.这是捆绑继承.只是复制(不是剪切).

You can overwrite the default settings by creating a new validation file in your bundle. This is bundle inheritance. Just copy (not cut).

FOSUserBundle/Resources/config/validation/orm.xmlYourBundle/Resources/config/validation/orm.xml.

(分别为couchdb.xmlmongodb.xmlpropel.xml)

并根据您的需要进行调整.更改类名,然后添加约束:

and adjust it to your needs. Change the class name, then add your constraints:

<class name="VendorYourBundleModelUser">

    <property name="username">
        <!-- minimum length for username -->
        <constraint name="MinLength">
            <option name="limit">3</option>
            <option name="message">Your name must have at least {{ limit }} characters.</option>
        </constraint>
        <!-- custom constraint -->
        <constraint name="AcmeDemoBundleValidatorConstraintsContainsAlphanumeric" />
    </property>

    <constraint name="SymfonyBridgeDoctrineValidatorConstraintsUniqueEntity">
        <option name="fields">usernameCanonical</option>
        <option name="errorPath">username</option>
        <option name="message">fos_user.username.already_used</option>
        <option name="groups">
            <value>Registration</value>
            <value>Profile</value>
        </option>
    </constraint>

    <constraint name="SymfonyBridgeDoctrineValidatorConstraintsUniqueEntity">
        <option name="fields">emailCanonical</option>
        <option name="errorPath">email</option>
        <option name="message">fos_user.email.already_used</option>
        <option name="groups">
            <value>Registration</value>
            <value>Profile</value>
        </option>
    </constraint>
</class>

验证约束参考.

这篇关于FOSUserBundle - 验证用户名、密码或电子邮件字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆