実践Laravel 基本編11 バリデート2

Posted: 2014-07-08 00:12 |  laravel 

カスタムバリデートを作ってみよう2

前回は\Validator::extendを使ってカスタムバリデートを登録する方法でしたが、
今回はresolverを利用して、バリデートを拡張します。
ディレクトリは任意の箇所に設置して下さい。
autoloadがclassmapの方はcomposer.jsonに追加、
psrの方は規約に沿った形で設置します。

namespace App\Validators;

class CustomValidator extends \Illuminate\Validation\Validator
{

} 
次にglobal.phpなどに拡張したクラスを登録します。
\Validator::resolver(function($translator, $data, $rules, $messages) {
    return new \App\Validator\CustomValidator($translator, $data, $rules, $messages);
});
これで準備はOKです。

カスタムバリデート実装

カスタムバリデートを実装する上で決まったルールがあります。
それは、実装するメソッドに validate をプレフィックスにします。
hogeというルールを登録する場合は、
public function validateHoge($attribute, $value, $parameters)
{
    return $value == 'hoge';
}

という様になります。
extendと同様に、

$attributeはバリデートが適用されるフィールド名、
$valueは値、
$parametersは引数を用いる場合にその値が代入されます。
この他にもIlluminate\Validation\Validatorには多くのメソッドが用意されています。
他の送信された値を利用する場合は、
getData()等多くのメソッドが用意されています。
データベース等を利用したい場合は、モデルや、クエリービルダーを使う以外にも
Illuminate\Validation\DatabasePresenceVerifierクラスが用意されています。
詳細な実装方法は、Illuminate\Validation\Validatorクラス内に、
実際に用意されているバリデートが実装されていますので、
参考にするとそれぞれの実装方法がわかると思います。

バリデートメッセージもここで指定したり、
バリデーションルールを指定する場合にも指定可能です。

'attribute.hoge' => 'バリデートメッセージ'

の用に指定できます。

validateHogeNameなどにした場合は、

'attribute.hoge_name' => 'バリデートメッセージ'

となります。
カスタムルールの実装自体は簡単にできますので、
是非色々触ってみて、ご自身に合う実装方法をみつけてみてください。

about ytake

執筆に参加しています


Laravel お役立ち情報

share



このエントリーをはてなブックマークに追加

Categories

laravel 45

DTM 0

music 0

PHP全般 31

0

JAPAN 1

WORLD 1

javascript 4

RDBMS 1

NoSQL 1

NewSQL 1

Recent Posts

Ad

comments powered by Disqus

GitHub

Social Links

Author


クリエイティブ・コモンズ・ライセンス
Yuuki Takezawa 作『Ytake Blog』はクリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス で提供されています。

© ytake/comnect All Rights Reserved. 2014