我试图解决我的问题:我无法找到 register_content.html.twig
的验证错误的定义位置。
我需要知道如何按照我的意愿显示这些错误。现在我的寄存器看起来像:
如您所见,存在一个丑陋的验证错误。我想更改标签
<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
中验证错误显示如下:
这是可能的,因为在 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/