Symfony 2 验证器 - 如何返回数组

use*_*356 0 php validation json symfony

我需要 Symfony2 验证器返回一个数组而不是一个对象。

所以像这样:

$insert = new MyEntity();
$insert->setTest1( 'testtesttest' );
$validator = $this->get('validator');
$errors = $validator->validate($insert);
Run Code Online (Sandbox Code Playgroud)

...将启用此功能:

$errors[0]['message'] = "The email is not valid"
Run Code Online (Sandbox Code Playgroud)

只是一个简单的数组,因为解析返回的对象是非常困难的。

我了解验证器配置,但我只需要验证器返回一个数组而不是通常的对象。

我对结果进行 JSON 编码,并且 (a) json_encode 与对象斗争 + (b) 我不想仅返回整个对象的错误列表。

我没有使用内置表单,只是使用原始验证器。

Nic*_*ich 5

您可以循环对象以创建错误数组。

$errors = $this->get('validator')->validate( $insert );

$errorArray = array();

foreach($errors as $error)
{
    $errorArray[$error->getPropertyPath()] = $error->getMessage();
}
Run Code Online (Sandbox Code Playgroud)