如何在验证失败后更改视图数据(我想在显示验证错误时更改复选框值以解释您无法选择它的原因)。我认为表格事件在这里没有帮助,因为验证最终会发生。
答案 0 :(得分:1)
Symfony来自bootstrap布局的以下代码片段显示了如何检查表单字段是否有效:
{% block form_row -%}
{% spaceless %}
<div class="form-group{% if (not compound or force_error|default(false)) and not valid %} has-error{% endif %}">
{{ form_label(form) }}
<div class="{{ block('form_group_class') }}">
{{ form_widget(form) }}
{{ form_errors(form) }}
</div>
</div>
{% endspaceless %}
{%- endblock form_row %}
查看if (not compound or force_error|default(false)) and not valid
您可以在代码中使用相同的检查。
答案 1 :(得分:0)
简而言之,您应该为模型添加布尔值,将复选框类型添加到表示此值的FormType中,并在验证失败时将其设置为false,如下所示:
$form->setData($model);
if (!$form->isValid()) {
$model->setFlag(false);
} else {
// save model, redirect etc
}