如何验证标量值和数组
通常你会验证整个对象。但有时,你只是想验证一个简单的数值 – 想验证一个字符串是一个有效的电子邮件地址。这其实是很容易做到的。从控制器里面,它看起来像这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// ...
use Symfony\Component\Validator\Constraints as Assert;
// ...
public function addEmailAction($email)
{
$emailConstraint = new Assert\Email();
// all constraint "options" can be set this way
// 所有约束“选项”,都可以这样设置
$emailConstraint->message = 'Invalid email address';
// use the validator to validate the value
// 使用validator去验证值
$errorList = $this->get('validator')->validate(
$email,
$emailConstraint
);
if (0 === count($errorList)) {
// ... this IS a valid email address, do something
// ... 这是一个有效的email地址,做些什么吧
} else {
// this is *not* a valid email address
// 他不是一个有效的email地址
$errorMessage = $errorList[0]->getMessage();
// ... do something with the error
// ... 出现错误要做的事情
}
// ...
} |
通过调用validator(验证器)的validate
方法,你可以传入一个原始值和一个你要使用的校验对象。可用约束完整列表-以及每个约束的完整类名-查看 constraints reference章。
该validate
方法会返回一个ConstraintViolationList对象,它扮演的只是一个错误信息数组的角色。集合中的每一个错误是一个ConstraintViolation对象,使用对象的getMessage
方法可以获取错误信息。