0

我还在那个DateTime领域,现在我有这两个问题。

我在一个表单上有两个字段date_startdate_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不是)。

第二个问题是错误消息总是显示“ This value is not valid ”,并且该行@Assert\DateTime( message="My error message" )似乎没有任何效果。date而且我不知道如何分别更改这两者time

任何帮助都是极好的。

4

1 回答 1

8

对于您的第二个问题,由于在验证之前发生数据转换失败,因此设置了错误消息“此值无效” 。所以@Assert实际上是无关紧要的。invalid_message您可以通过在表单字段声明中设置选项来更改消息。

于 2012-07-16T19:35:40.490 回答