如何在 Twig 中自定义显示“已有一个帐户”消息

问题描述 投票:0回答:2

我正在尝试在 Twig 中自定义此错误消息“已有一个帐户”的显示。

这是表单类中的相关代码:

->add('cin', TextType::class, [
            'required' => true,
        ])

这是相关的 HTML/Twig 代码:

<div class="form-outline">
   {{ form_row(registrationForm.cin ,{'label':false,'attr':{'placeholder':'Numéro carte d\'identité', 'name':'cin', 'class':'form-control', 'id':'cin', 'type':'number', 'minlength':'8', 'maxlength':'8', 'required data-error':'Veuillez saisir votre numéro de carte d\'identité', } } ) }}
   <span style="color: red">{{ form_errors(registrationForm.cin) }}</span>
</div>

这是我在屏幕上看到的内容,以防出现错误:

enter image description here

但是,我想要得到的只是定制为“无效卡 ID”之类的红色消息(位于文本字段下方)。 那么,我的代码有什么问题吗?有什么想法吗?

symfony twig textfield customization message
2个回答
1
投票

经过更多研究,我们发现可以在用户类中的

@UniqueEntity
验证器中更改错误消息。

更改当前验证器

/**
* @ORM\Entity(repositoryClass=UserRepository::class)
* @UniqueEntity(fields={"cin"}, message="There is already an account with this cin")
*/

/**
* @ORM\Entity(repositoryClass=UserRepository::class)
* @UniqueEntity(fields={"cin"}, message="Invalid card id")
*/

导致验证错误消息实际被相应修改。


0
投票

由于 TextType 扩展了 FormType 类,您应该能够定义自定义无效消息属性。 Symfony 将尝试通过在验证器翻译中搜索来解析给定的标识符,或者如果找不到匹配的翻译,则仅使用给定的文本。请参阅表单类型字段了解更多信息。

->add('cin', TextType::class, [
    'required' => true,
    'invalid_message' => 'Invalid card ID'
])

将无效消息更改为此将导致 twig 呈现自定义消息。在上面的示例中,我只是将所需的参数作为选项添加到 TextType。

© www.soinside.com 2019 - 2024. All rights reserved.