Home >Backend Development >PHP Tutorial >symfony 注册页面判断用户名唯一

symfony 注册页面判断用户名唯一

WBOY
WBOYOriginal
2016-06-06 20:19:241258browse

求助:我想在注册的时候,加个判断,用户名唯一,这个怎么做?

这个问题已被关闭,原因:与已有问题重复

回复内容:

求助:我想在注册的时候,加个判断,用户名唯一,这个怎么做?

调用数据库判断呀

监听用户名表单输入的事件,keyUp或者是blur,事件触发时使用Ajax将用户名提交到服务器做判断,将判断结果返回,前端再做相应的处理。

不清楚你是否想用Ajax,如果单纯从Symfony这一端来进行验证或者约束,需要在定义Entity的时候在用户名处(假设用户名是username)作如下约束(@ORM\Column加unique=true约束,同时Entity头部加@UniqueEntity(fields="username")约束),提交后,Symfony会自动验证username是否唯一,如果验证失败则提示错误信息(message):

<code>use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 *@ORM\Entity
 *@UniqueEntity(fields="username", message="用户名已存在")
 */
class User
{
    /**
     *@ORM\Column(type="string", length=255, unique=true)
     *@ORM\NotBlank()
     */
     protected $username;

    //...
}
</code>

备注:

  1. @ORM\Column(unique=true)会反映到具体的SQL语句上(UNIQUE KEY),是数据库层面的约束

  2. @UniqueEntity则属于Symfony验证(Validator)的一部分,是Symfony业务逻辑层面的约束(验证)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn