1

我将 $errors 传递给 Twig,由此生成:

$insert = new MyEntity();
$insert->setTest1( 'testtesttest' );
$validator = $this->get('validator');
$errors = $validator->validate($insert);

...我如何获得一个特定的错误值,如果它有效的话是这样的?

{{ errors('field1') }}

...应该只返回错误消息,例如“这不是有效的电子邮件地址”等。

我知道我可以循环获取所有这些:

{% for err in errors %}
    {{ err.label }}: {{ err.value }}<br />
{% endfor %}

...但我只想要一个特定的

4

1 回答 1

1

您不能直接访问验证错误对象数组的字段名。您必须通过循环搜索它。

{% for error in errors %}
   {% if error.propertyPath = 'fieldname' %}
      {{ error.propertyPath }}: {{ error.message }}
   {% endif %}
{% endfor %}

但也许你最好只使用......

$errors = $validator->validateProperty($insert, 'fieldname);

...在您的控制器中,只需将一个属性的错误列表传递到您的模板中。

于 2013-07-08T00:30:05.707 回答