2017-01-29 8 views
0

私は、使用に問題がありますSymfony 3フォームエラーコンポーネント。フォームに私自身のエラーを追加する必要がありますが、パラメータは値に置き換えられません。 Symfony3フォームエラーパラメータが機能しない

$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マニュアルはサイレントです。

ありがとうございました。

答えて

1

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)); 

を私が掲載され、私はそれは同じソリューションです

+0

http://symfony.com/doc/current/best_practices/i18n.html#translation-keysを参照)文字列を変換するよう代わりに、実際のメッセージのメッセージプレースホルダを使用することをお勧め私の元の質問で。しかし、そこに他の解決策がないようです。 FormErrorに引数のような引数がある理由は分かりません:-D .. – Filip

関連する問題