バリデーション (3) 既存バリデーションの置き換え

Laravelには最初から利用可能なバリデーションルールが多数存在していますが、そのいくつかは実用にならなかったり、自分好みに挙動を変えたりしたいこともあります。

CustomValidator クラスは標準 Validator を継承していますので、これらを置き換えて上書きすることが可能です。

vendor/laravel/framework/src/Illuminate/Validation/Validator.php
続き “バリデーション (3) 既存バリデーションの置き換え”

バリデーション (2) CustomValidatorを追加

カスタムバリデーションのクラスを追加するには、サービスプロバイダーで次のようにクラスを登録します。

追加するクラスの名前や位置はどのようなものでもかまいせん。ここでは、ディレクトリパス app/Services に CustomVaidator.phpを作成し、AppServiceProvider に登録することにします。
続き “バリデーション (2) CustomValidatorを追加”

バリデーション(1)Validatorファサードのextend

はじめまして。ブログ主筆khino氏と同じプロジェクトで仕事をしてます。
彼とは別テーマを平行して掲載しますので、これまで順番に読み進めていた方にはちょっと読みにくくなるかもしれませんが、ご容赦ください。

私の最初のテーマはカスタムバリデーションルールです。
このシリーズでは、Validatorファサードの基本的な使い方から始めて、より複雑なルールの定義の仕方や、laravel 5.2で追加された配列定義のカスタムバリデーションまで紹介する予定です。
続き “バリデーション(1)Validatorファサードのextend”

routesを使いこなす(1)resourceを使う

私が開発・管理しているプロジェクトのひとつは、もともとは過去に人気があったCodeIgniterで書かれたもの。過去2年の間に、それをLaravelのバージョン4で書き直し、さらに更新して現在はLaravelのバージョン5.2となっています。

それゆえに、最初のLaravelを使っての書き換えは、Laravelを勉強しながらの書き換えで、知らないことが多く、Route::controllerを多用していました。
続き “routesを使いこなす(1)resourceを使う”

親子関係のテーブルでのクエリーの作成(Eloquent編)

Laravel以前は、ほぼコードにSQL文を埋め込んでいたので、Eloquentよりクエリビルダーの方が馴染みあります。特に複数のDBテーブルをjoinした検索などには。

しかし、各Modelにおいてリレーションを定義していると、それを使用しないのがもったいないように思えてきます。

クエリビルダーでできることをEloquentではどうやるのか、興味ありありになってきました。
続き “親子関係のテーブルでのクエリーの作成(Eloquent編)”

Eloquentでカウントするときの注意

Eloquentのcount()の関数を使用して、DBのレコード数を数える作業はよく起こります。

例えば、前回の画像の件では、商品productのレコード1に対して商品画像product_imageレコードがが複数あるという、1対多の関係。そこでは、商品を削除するときに商品画像がないかをチェックする必要あります。画像のレコードがあるなら、削除を拒否あるいはユーザーに削除してよいか尋ねるということになります。

この場合は、商品画像があるかないかは、count()するのが一番。しかし、Eloquentではいろいろなカウントのコードの仕方があります。

今回は、これを説明するために、コントローラに特別にメソッドを作成してみました。
続き “Eloquentでカウントするときの注意”

Top