2016-03-19 9 views
1

私はRequestクラスのコードがあります:あなたが見ることができるようにLaravel:Requestクラスでカスタム検証クラスのメイクを追加する属性を失敗()メソッド

public function rules() 
{ 
    return [ 
     'id' => 'required|check_xxx', 
    ]; 
} 

public function attributes() 
{ 
    return [ 
     'id' => 'AAA', 
    ]; 
} 

を。私はcusom検証メソッド名check_xxxを持っています。内部クラスのこのメソッドCustomValidator

だから、私はコードを持っている:必要ため

class ValidationServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     $this->app->validator->resolver(function ($translator, $data, $rules, $messages) { 
      return new CustomValidator($translator, $data, $rules, $messages); 
     }); 
    } 
} 

、エラーメッセージは次のとおりです。を入力してください:属性

しかし、私はメッセージだ:してください入力されたID、(TRUEを:AAAを入力してください)

私はそれを発見しました$ this-> app-> validator-> resolverのRequest()内ののメソッドの属性は役に立ちません。

どうすれば修正できますか?ありがとうございました。

答えて

1

私はLaravel 5.2でこの問題を抱えていましたが、次のようにQUICKソリューションが見つかりました。次の例では、ルールをAPPプロバイダ内に直接追加します。

ルールを追加するためのファイル:アプリ/プロバイダ/ AppServiceProvider.php

public function boot() 
    { 
     // .... 

     #/ 
     #/ Adding rule "even_number" to check even numbers. 
     #/ 
     \Validator::extend('even_number', function($attribute, $value, $parameters, $validator) { 
       $value = intval($value); 
       return ($value % 2) == 0); 

     // ... 

    } 
関連する問題