php - Symfony 和 FOSUserBundle。自定义注册模板上的验证错误

标签 php symfony twig fosuserbundle

我试图解决我的问题:我无法找到 register_content.html.twig 的验证错误的定义位置。

我需要知道如何按照我的意愿显示这些错误。现在我的寄存器看起来像:

enter image description here

如您所见,存在一个丑陋的验证错误。我想更改标签

<div>
 <ul><li> Las dos contraseñas no coinciden. </li></ul> 
</div>

由另一个人在某处预定义。

我已经覆盖了 View register_content.html.twig,我可以显示验证错误,但不能自定义它。

<div>
    {{ form_errors(form.email) }}
    {{ form_errors(form.username) }}
    {{ form_errors(form.plainPassword.first) }}
    {{ form_errors(form.plainPassword.second) }}
</div>

你知道如何自定义验证错误的 HTML 结构吗?

例如login_content.html.twig中验证错误显示如下:

enter image description here

这是可能的,因为在 login_content.html.twig 中定义了验证错误:

{% if error %}
    <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}

最佳答案

您必须覆盖默认的 symfony 表单错误 block 。 您可以在 symfony documentation 中了解如何操作。

您将能够全局或按 View 设置此表单主题,如 documentation 中所示。

例如,如果您想在带有 alertalert-danger 类的 div 中显示错误,您将创建一个文件 views/Form/form_errors.html.twig

{% form_theme form _self %}

{# form_errors.html.twig #}
{% block form_errors %}
    {% spaceless %}
        {% if errors|length > 0 %}
        <div class='alert alert-danger'>
            {% for error in errors %}
                <div>{{ error.message }}</div>
            {% endfor %}
        </div>
        {% endif %}
    {% endspaceless %}
{% endblock form_errors %}

要在注册表中使用此自定义主题,您可以在覆盖文件的顶部调用register_content.html.twig

{% form_theme form 'Form/form_errors.html.twig' %}

关于php - Symfony 和 FOSUserBundle。自定义注册模板上的验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48278742/

相关文章:

mysql - Doctrine 多对多连接表未填充

PHP/MySQL - undefined variable : sql when uploading a file

php 没有将当前时间戳插入到 mysql 表中?

symfony - 在url末尾添加#

php - 从表中选择行等于选项 symfony2

javascript - Angular ng-repeat 有效...但没有绑定(bind)/显示任何值(Twig)

twig - 通过包含在 twig 和 slim 框架中传递字符串变量

symfony - 渲染前检查模板是否存在

php - Bootstrap 网格未正确对齐

php - 如何在 MAMP 的 php 版本上运行 composer?