从Symfony2 Validator生成的Twig中获取特定错误消息

时间:2013-07-07 23:53:04

标签: symfony twig

我将$错误传递给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 %}

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

...在你的控制器中,只是将一个属性的错误列表传递给你的模板。