スイーツ(笑)と呼ばないで!!
| |||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
11/24/09:31 [PR] |
05/04/13:06 Laravel5で迷いが消える! Form Request ValidationLaravelは柔軟性のあるフレームワークだ。
しかし、それゆえに、迷いが生じることもある。 例えば、View Composer、機能はわかってもそれをいったいどこに書いたら良いの?とか、そんな迷いが生じる。 そんな迷いの中の一つがvalidationだ。 Laravel4系を使っているとvalidationの書き方や、書く場所なんかで迷ったりする。 Modelで書く、Controllerで書く、別のValidationクラスを作る、あるいはJeffreyの作成したForm Validationのバッケージを使う、どれもある意味正解でどれも絶対的な正解ではなかったりする。 そんな中で、ある一つの明確な解答を打ち出したのがLaravel5で登場するForm Request Validationだ。 これはRequestクラスを継承したものであるが、artisanコマンドで簡単にgenerateすることができる。 php artisan make:request CreateArticleRequest こんな感じだ。 そうするとCreateArticleRequestクラスが自動生成され、そこにrulesというメソッドスタブが生成される。 そこで例えば下記のようなvalidationルールを書けばvalidationは終了だ。 public function rules() { return [ ‘title’ => ‘required|between:3,100’, ‘body’ => ‘required|min:10’, 'url' => 'required|url' ]; } しかも、これを実行するためには、controllerのactionでタイプヒンティングするだけでOK。 public function store(CreateArticleRequest $request) { } という感じ。 Laravel4までは、constructor injectionしか利用できなかったが、 Laravel5では、method injectionが利用できるようになった。 これはその恩恵の一つだ。 これらの機能が使えるようになっただけでも、Laravel5に移行する十分な理由となると思う。 Laravel5へ移行する学習コストに比べて、移行することで将来的に節約できる実装コストの割合は大きい。 PR
|
|
|