2017-01-29 4 views
1

無視します: symfonyのアサートが、私は、エンティティでこのコードを持っているカスタムメッセージ

/** 
    * @Assert\Type(
    *  type="real", 
    *  message="Price for vehicle service must be real number." 
    *) 
    * 
    * @ORM\Column(name="min_price", type="float") 
    */ 
    protected $minPrice; 

しかし、このフォームのフィールドに整数以外の値を入力した場合、symfonyは(私の場合Значениеのнедопустимоに)デフォルトロケールのエラー・メッセージを返し、ない

"車両サービスの価格は実数でなければなりません。"フィールド名が指定されていないためエラーが発生し、複雑なフォームがある場合はこのフィールドを見つけるのに時間がかかるため、快適ではありません。

解決策はコールバックの検証となる可能性がありますが、私の主観によれば、ユーザーはロケールのデフォルトメッセージしか見ることができないため、表示されません。 @Assert \ Regex(pattern = "/ + d /"、message = "カスタムメッセージ")を追加しないようにしようとしたとき、私はとにかくロケールのデフォルトメッセージを見ました。

Symfony\Component\Validator\ConstraintViolation 
Object(Symfony\Component\Form\Form).children[vehiclePriceOutOfTown].children[minPrice] = g 
Caused by: 
Symfony\Component\Form\Exception\TransformationFailedException 
Unable to reverse value for property path "minPrice": Number parsing failed: U_PARSE_ERROR 
Caused by: 
Symfony\Component\Form\Exception\TransformationFailedException 
Number parsing failed: U_PARSE_ERROR 

答えて

0

ユーザーの入力の変換時にトリガーされる参照例外:

symfonyのプロファイラは、以下のエラーが表示されます。これは実際の検証ロジックが適用される前に発生します(これはPOST_SUBMITイベントの一部として発生します)。 TransformationFailedExceptionがスローされたときに表示されるエラーメッセージをカスタマイズする場合は、特定のフォームタイプにinvalid_message optionを使用できます。

+0

「invalid_message」を追加していただきありがとうございます。 –

関連する問題