为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony,抢先提示/显示表单中的验证约束消息

Symfony,抢先提示/显示表单中的验证约束消息

PHP
泛舟湖上清波郎朗 2023-04-28 17:14:58
当我有一个表单和一些约束规则时,比如max valueor LessThanOrEqual,我如何显示这个规则条件以便用户知道输入接受什么数据格式?我想显示在验证失败后(表单提交后)出现的相同消息始终可见,在各自附近的某个地方<input>更多信息我在 respective 中有这个buildForm,正如你所看到的,它们LessThanOrEqual具有动态的可能值。因此,最好始终让用户了解可以输入的最大值。    $builder        ->add('amount', null, [            'constraints' => [                new LessThanOrEqual($maxValue)            ]        ])我知道我可以使用help属性,但是再次定义翻译文本有点多余,因为所有的验证规则都已经设置好了。因此,最好只显示相同的消息,该消息将在提交验证失败的表单后出现。所以在我的例子中:该值应小于或等于 {{ compared_value }}谢谢编辑:这将通过实时 javascript 验证部分解决,实时验证并通知用户,只需使用一些 javascript(jQuery,...)插件。但是,在输入旁边显示一条简单的文本消息(通知验证规则)也很好——这个 javascript 解决方案无法解决这个问题。编辑 2:在我的树枝视图中只是基本的,没什么特别的:{{ form_start(form) }}    {{ form_widget(form) }}    <button class="btn btn-success">{{ button_label|default('Save'|trans) }}</button>{{ form_end(form) }}
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

从 symfony 4.3 开始,您可以使用“help_translation_parameters”,所以这应该可以工作。


    $constraint = new LessThanOrEqual(7); // create constraint

    $builder

        ->add('amount', null, [

            'constraints' => [

                $constraint

            ],

            'help' => $constraint->message,

            'help_translation_parameters' => ['{{ compared_value }}' => $constraint->value]

        ])

    ;


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信