我需要Symfony2 Validator来返回一个数组而不是一个对象。
这样的事情:
$insert = new MyEntity();
$insert->setTest1( 'testtesttest' );
$validator = $this->get('validator');
$errors = $validator->validate($insert);
...将启用此功能:
$errors[0]['message'] = "The email is not valid"
只是一个简单的数组,因为解析返回的对象非常困难。
我理解验证器配置,但我只需要验证器返回一个数组而不是它的常用对象。
我是JSON编码结果和(a)json_encode与对象斗争+(b)我不想只返回整个对象的错误列表。
我没有使用内置表单,只使用原始验证器。
答案 0 :(得分:3)
您可以遍历对象以创建错误数组。
$errors = $this->get('validator')->validate( $insert );
$errorArray = array();
foreach($errors as $error)
{
$errorArray[$error->getPropertyPath()] = $error->getMessage();
}
答案 1 :(得分:1)
Validator->validate()
返回ConstraintViolationListInterface
的对象,该对象实现IteratorAggregate
接口。简单的foreach,并从ConstraintViolationInterface
对象构建您想要的数组。