userCanonical验证附近标签用户名与FOSUserBundle和Symfony2

时间:2012-02-08 20:35:59

标签: forms symfony fosuserbundle

我正在使用Symfony2和FOSUserBundle。

如果我在注册表单中输入用户名或电子邮件地址(已在数据库中),则会显示注册表单顶部的错误。

如何将错误消息放入用户名/电子邮件字段?

2 个答案:

答案 0 :(得分:0)

阅读文档 Rendering each Field by Hand

{{form_errors(form.username)}}
{{form_errors(form.)}}

或创建表单主题 Global Form Theming

答案 1 :(得分:0)

如果您将FOSUserBundle设置为捆绑包的父级:

// src/Acme/UserBundle/AcmeUserBundle.php

<?php

namespace Acme\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AcmeUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}

然后你可以将自己的validation.yml文件放在config文件夹中,你可以像这样设置唯一约束的errorPath属性:

#validation.yml:
Acme\DemoBundle\Entity\User:      # your user entity
constraints:
    - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: { fields: usernameCanonical, errorPath: username, groups: [CustomRegistration, Default] }

确保将errorPath设置为表单上的实际字段名称。