當我有一個表單和一些約束規則時,比如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]
])
;
- 1 回答
- 0 關注
- 127 瀏覽
添加回答
舉報
0/150
提交
取消