我试图解决我的问题:我无法找到定义register_content.html.twig
验证错误的位置。
我需要知道如何按照自己的意愿展示错误。现在我的注册表看起来像:
正如您所看到的,有一个丑陋的验证错误。我想更改标签
<div>
<ul><li> Las dos contraseñas no coinciden. </li></ul>
</div>
在某处预定义,由另一个预定义。
我已覆盖视图 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结构吗?
例如<{1}}中的验证错误如下所示:
有可能因为在login_content.html.twig
中定义了验证错误:
login_content.html.twig
答案 0 :(得分:1)
您必须覆盖默认的symfony表单错误块。 您可以在symfony documentation
中了解如何执行此操作您可以将此表单主题设置为全局或每个视图,如documentation
所示例如,如果您想在类Table2
的div中显示错误,则可以创建文件create trigger ti_Table2 ON Table2 for insert
as
begin
-- delete rows from table1
delete t1
from
(
-- here it get list of name that exceeds 40 rows
select i.Name
from (
-- get the distinct Name
-- inserted contains newly inserted rows
select distinct i.Name
from inserted i
) i
-- join it to Table2 to find no of rows
inner join Table2 t2 on i.Name = t2.Name
group by i.Name
having count(*) >= 40 -- when exceed 40
) t2
inner join Table1 t1 on t2.Name = t1.Name
end
alert alert-danger
并在注册表单中使用此自定义主题,您可以在覆盖文件的顶部调用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 %}
答案 1 :(得分:1)
我找到了解决方案。我已更改Twig中{{ form_error }}
的{{1}}变量。
示例,如果您要自定义电子邮件验证错误:
form.field.vars.errors
改变它:
<div>
{{ form_errors(form.email) }}
</div>
您可以使用 div 标记或任何您想要的标记。
答案 2 :(得分:0)
您可以使用translation。在parameters.ini set locale中输入您的语言并创建message file。然后在twig模板中使用:
{% if error %}
<div class="error">{{ error.message|trans({},'messages') }}</div>
{% endif %}
另一种解决方案是:
{{ error.message | replace({"Bad credentials." : "Invalid username or password."}) }}