我仍在DateTime
字段上,现在我遇到了这两个问题。
我在一个表单date_start
和date_end
上有两个字段,其中两个字段的定义如下:
/**
* @ORM\Column(type="datetime", nullable=true)
* @Assert\DateTime( message="My error message" )
*/
protected $date_start;
->add('date_start', 'datetime', array(
'label' => 'incoming',
'date_widget' => 'single_text',
'time_widget' => 'single_text',
'date_format' => 'dd/MM/yyyy',
'with_seconds' => false,
'required' => false,
) )
{% block form_errors %}
{% spaceless %}
{% if errors|length > 0 %}
{% for error in errors %}
<li>{{ error.messageTemplate }}</li>
{% endfor %}
{% endif %}
{% endspaceless %}
{% endblock form_errors %}
{% block field_errors %}{{ block('form_errors') }}{% endblock %}
{{ form_errors(form.date_start.date) }}
{{ form_errors(form.date_end.date) }}
<div class="row{% if form_errors(form.date_start.date) or form_errors(form.date_start.time) %} error{% endif %}">
{{ form_label(form.date_end, null, { 'attr': {'class': '_hint'} }) }}
{{ form_widget(form.date_end) }}
</div>
date_end
再次完全相同。
当我为date_start.date
输入错误的输入时 <div>
获取错误类,两者都附加了相同的错误。反之亦然(date_start.date
无效,但date_end.date
没有)。
第二个问题是错误消息始终显示“此值无效”,而行@Assert\DateTime( message="My error message" )
似乎没有任何效果。我不知道如何分别为date
和time
更改此内容。
任何帮助都会很棒。
答案 0 :(得分:8)
对于第二个问题,由于在验证之前发生数据转换失败,因此设置了错误消息“此值无效”。所以@Assert
实际上是无关紧要的。您可以通过在表单字段声明中设置invalid_message
选项来更改消息。