加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony 2.4 – 重复的表单字段 – 当值不匹配时,如何将

发布时间:2020-12-13 22:50:59 所属栏目:PHP教程 来源:网络整理
导读:我有一个重复的表单字段(Symfony 2.4),我想只将“值不匹配”错误映射到第二个字段(因为在我看来感觉更自然). 我尝试将此选项添加到表单字段: ‘error_mapping’= array(‘.’=’second_field_name’) 但是,所有违规(甚至与应用于第一个字段的约束相关的违规
我有一个重复的表单字段(Symfony 2.4),我想只将“值不匹配”错误映射到第二个字段(因为在我看来感觉更自然).

我尝试将此选项添加到表单字段:

‘error_mapping’=> array(‘.’=>’second_field_name’)

但是,所有违规(甚至与应用于第一个字段的约束相关的违规)都会映射到第二个字段.
我试图深入研究源代码但我找不到除了之外的属性路径.捕获“值不匹配”错误.

有没有人尝试类似的东西?

解决方法

根据我的阅读,我的印象是你真正想做的是在两个字段的底部显示所有重复的字段错误.与一个或另一个包含字段相关的所有错误应显示在其各自子字段的底部.

我想在此明确指出,与单个子字段相关的所有错误应仅出现在发生错误的子字段下;与两个字段相关的错误(“值不匹配”IS这样的错误)应该与重复字段本身相关.

因此,您实际上不需要修改PHP代码中的任何内容.您应该删除* error_mapping * propriety并让它解析为默认值.

您要做的是修改重复字段的模板.为此,您可能必须为应用程序创建表单主题.如果你不熟悉这个概念,我建议你关注这个问题.

完成后,您需要修改* repeated_row *块.表单主题使用继承,因此重复字段的默认块呈现如下:

{% block form_row %}
{% spaceless %}
    <div class="form_row">
        {{ form_label(form) }}
        {{ form_errors(form) }}
        {{ form_widget(form) }}
    </div>
{% endspaceless %}
{% endblock form_row %}

您需要做的是在表单主题模板中添加:

{% block repeated_row %}
{% spaceless %}
    <div class="form_row">
        {{ form_label(form) }}
        {{ form_widget(form) }}
        {{ form_errors(form) }}
    </div>
{% endspaceless %}
{% endblock repeated_row %}

这样,不是在字段之前显示,而是在它之后显示与重复相关的错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读