私はプロジェクトの初期段階ですが、カスタムコールバックバリデーター(終了日が開始日の後であることを検証します)を含むいくつかの基本機能を作成しました。翻訳を有効にするためにリファクタリングを開始しました。私はこれまでのところ問題はありませんでした...私がカスタムコールバック検証を翻訳するのを見るまで。Symfony2コールバック検証エラーメッセージの翻訳を有効にするにはどうすればよいですか?
翻訳キーの値を私のエラーメッセージに入れて、Symfonyが自動的に翻訳してくれると主張している投稿を読んだが、これは私にとってはそう思わない。誰かが自分のカスタム検証で翻訳を有効にする方法を教えたり、ドキュメントへのリンクを提供したりできますか?
は、ここで翻訳キーと私の現在の検証コードが含まれています:
<?php
namespace CG5\BFG\CoreBundle\Validators;
use Symfony\Component\Validator\ExecutionContext;
class EndDateValidator
{
static public function isEndDateValid($entity, ExecutionContext $context)
{
if ($entity->getEndDate() <= $entity->getStartDate())
$context->addViolationAtSubPath('endDate', 'validation.invalid.enddate', array(), null);
}
}
うん、その持っている:Dを、そしてキャッシュを複数回 'クリアした検証: 無効: ENDDATE:終了日がなければなりませんスタートDate' – Chris
翻訳ファイルである「アプリ/リソース/翻訳/ validators.en後.yml "、それは私の答えに間違っていた。そのファイルにあなたの翻訳がありますか?私は自分のエンティティでメソッドを使用しています。それを試しましたか? http://symfony.com/doc/2.0/reference/constraints/Callback.html - >最初のメソッド – vincecore
コールバック(静的関数)のためにそこにリストされている2番目のメソッドを使用しています。この検証をすべてのmy開始日/終了日を持つエンティティ私のmessages.en.ymlをvalidators.en.ymlにコピーした後、動作を開始します。 validators.en.ymlを提案してくれてありがとう。私はdocページに言及されていることを見ていないので、これを知ってくれてありがとう:D – Chris