2016-06-20 18 views
0

"2つのユーザー提供フィールド間"のルールを作成するためにLaravel検証ルールを拡張しています - betweenルールは "2つの値の間"のみを処理します。Laravel検証 - カスタムルール、カスタムエラーメッセージ

Validator::extend('between_fields', function($attribute, $value, $parameters, $validator) { 
    $data = $validator->getData(); 

    $min = array_get($data, $parameters[0], $parameters[0]); 
    $max = array_get($data, $parameters[1], $parameters[1]); 

    return $value >= $min && $value <= $max; 
}); 

これは正常に動作しますが、私はその後、数値を使用して、エラーメッセージを定義したいと思います。既存のbetweenルールがどのように動作するかですが、:min:maxが何かでは置き換えることができません

'between_fields' => ':attribute must be between :min and :max.', 

...:私はこのようなメッセージを設定しました。

Validator拡張機能からメッセージハンドラまでの値をどのように渡しますか?

答えて

1

あなたは、私は*笑*ドキュメントでは、それはちょうど明白な方法で指定されていないであることが判明:)何かが欠けする必要があります知っていた、Validator::replacer()

Validator::replacer('between_fields', function($message, $attribute, $rule, $parameters){ return str_replace(...); //replace placeholders with the values you want });

+0

ああとそれに持っています。どうもありがとう。私はちょうど私がそのプロジェクトに戻ってきて、それをテストしたら、すぐに答えを受け入れるでしょう – Joe

+0

あなたは歓迎です –

関連する問題