簡體   English   中英

Symfony3 Form-Error參數不起作用

[英]Symfony3 Form-Error Parameters not working

我在使用Symfony 3 Form Error組件時遇到問題。 我需要將自己的錯誤添加到表單中,但是參數不能替換為值。

$form->get('price')->addError(
    new \Symfony\Component\Form\FormError("Maximal value is %price% %currency%.", 
    null, 
    array('%price%' => 100, '%currency%' => 'YPI')));

與其他驗證程序一樣,我嘗試在{{ currency }}{{ price }}使用參數,但仍然無法使用。

有這樣的方法: http : //quedig.com/questions/35271649/symfony-form-error-message-parameters-usage/,但這不是最好的方法-我仍然相信更好的解決方案,使我可以不用放置經典翻譯此處翻譯服務的結果。

FormError的最佳用法是什么? Symfony3手冊是靜默的。

謝謝。

傳遞給FormError的構造函數的消息必須已經翻譯。 否則,它們將按原樣顯示。 因此您的代碼可能如下所示:

// $translator should be the "translator" service
$message = $translator->trans('Maximal value is %price% %currency%.', [
    '%price%' => 100,
    '%currency%' => 'YPI',
]);
$form->get('price')->addError(new FormError($message));

順便說一句,我建議使用消息占位符代替真實消息作為要翻譯的字符串(請參見http://symfony.com/doc/current/best_practices/i18n.html#translation-keys

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM