黄舟2017-04-10 16:45:48
不清楚你是否想用Ajax,如果单纯从Symfony这一端来进行验证或者约束,需要在定义Entity的时候在用户名处(假设用户名是username)作如下约束(@ORM\Column加unique=true约束,同时Entity头部加@UniqueEntity(fields="username")约束),提交后,Symfony会自动验证username是否唯一,如果验证失败则提示错误信息(message):
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;
//...
}
备注:
@ORM\Column(unique=true)会反映到具体的SQL语句上(UNIQUE KEY),是数据库层面的约束
@UniqueEntity则属于Symfony验证(Validator)的一部分,是Symfony业务逻辑层面的约束(验证)