忍者ブログ

スイーツ(笑)と呼ばないで!!

NEW ENTRY
10 2024/11 1 23 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 30 12

11/24/09:31  [PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

05/04/13:06  Laravel5で迷いが消える! Form Request Validation

Laravelは柔軟性のあるフレームワークだ。
しかし、それゆえに、迷いが生じることもある。

例えば、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へ移行する学習コストに比べて、移行することで将来的に節約できる実装コストの割合は大きい。

拍手[0回]

PR
URL
FONT COLOR
COMMENT
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
PASS

TRACKBACK

TRACKBACK-URL