如何从twig Symfony 5.2重写form_errors() ?



如何在Symfony 5.2中重写表单字段验证错误模板?

我在twig中有一个这样的表单

{{ form_start(registrationForm) }}
name:<br />
{{ form_row(registrationForm.name) }}
family_name:<br />
{{ form_row(registrationForm.family_name) }}
Email:<br />
{{ form_row(registrationForm.email) }}
password:<br />
{{ form_row(registrationForm.password) }}
<br />
<div class="text-center"><button type="submit" class="site-btn">registration</button></div>
{{ form_end(registrationForm) }}

在email字段验证出错的情况下,这是布局

<div>
<ul>
<li>There is already an account with this email</li>
</ul>
<input type="text" id="registration_form_email" name="registration_form[email]" required="required" maxlength="180" class="register-form-input" autocomplete="off" value="asd">
</div>

的问题是布局与表单验证错误

<ul>
<li>There is already an account with this email</li>
</ul>

取自标准模板symfony,但我想在表单字段验证失败时使用我自己的模板。

我转向文档来澄清这个和这个,但说实话,它让我更困惑,我只是意识到这个表单可以在模板中以某种方式程式化,但我不明白。

如何使自己的模板显示字段验证错误的形式?

因此,我希望得到这样的布局:

<div>
<b>There is already an account with this email</b> <br>
<input type="text" id="registration_form_email" name="registration_form[email]" required="required" maxlength="180" class="register-form-input" autocomplete="off" value="asd">
</div>

foundation_5_layout.html.twig扩展了form_div_layout.html.twig,我没有看到form_errors也在form_div_layout中,但原理是一样的。

不要复制,创建一个模板"errors.html.twig"例如,用你想要的代码创建一个块form_errors,并在你的表单模板中,用

调用它
{% form_theme form 'path/to/errors.html.twig' %}

是不是更清楚了:)?它只是对树枝块的重写

当使用Symfony Forms时,您可以使用表单错误函数并使用HTML来根据您的需要设置样式:

枝:

{# render only the error messages related to this field #}
{{ form_errors(form.name) }}
{# render any "global" errors not associated to any form field #}
{{ form_errors(form) }}

所有你需要知道的都可以在这里找到

相关内容

  • 没有找到相关文章

最新更新