我想使用alnum类型但没有空格,我可以用它做点什么还是必须自己定义类型?我要使用没有空格的用户名。
在这里喜欢:
private $username;
/**
* @Assert\NotBlank()
* @Assert\Length(max=4096)
* @Assert\Type(type="alnum")
答案 0 :(得分:1)
解决这种问题的最有效方法是约束Regex。
您的情况(一个非常简单的情况)足以使用(请参阅Length)
/**
* @Assert\Length(max=4096, minMessage="...", maxMessage="...")
* @Assert\Regex(
* pattern = "/^[a-z0-9]+$/i",
* htmlPattern = "^[a-zA-Z0-9]+$",
* message="Your name must contain only letter or numbers"
* )
*/
这里可以仅在一个验证器约束中统一两个验证器,但是请记住,如果您有多个条件(例如长度和禁止的字符),您将无法显示准确的错误消息
/**
* @Assert\Regex(
* pattern = "/^[a-z0-9]{1,4096}$/i",
* htmlPattern = "^[a-zA-Z0-9]{1,4096}$",
* message="Your name must contain only letter or numbers and must have length between 1 and 4096"
* )
*/
其中 {1,4096} 是长度字符串限制的 min 和 max 值。 / p>
htmlPattern 和消息是可选的。