Requestコントローラのauthorizeメソッドとrulesメソッド

Requestコントローラのauthorizeメソッドとrulesメソッド

Formのバリデーションを管理するのに便利なRequestコントローラなるものがある。

今回はそれを扱う。

Requestコントローラ

以下のartisanコマンドを実行すると、form requestを作成することが出来る。

このコマンドを実行すると、StorePostRequest.phpファイルがapp/Http/Requestsディレクトリに作成される。

※app/Http/Requestsディレクトリがない場合は、make:requestを実行した時点で自動的に生成してくれる。

このRequest.phpファイルには、あらかじめauthorizeメソッドとrulesメソッドが用意されている。

先に説明だけすると、authorizeメソッドはリクエストを送ったユーザーがリクエストを実行する権利を持っているかを判断して、rulesメソッドはデータに適用する検証ルールを返す。

authrizeメソッド

どんなユーザーがリクエストを実行できるかを判断する。

デフォルトではreturn falseのみ書かれていて、誰もリクエストできない状態になっている。

ここをreturn trueにしたり、他の処理を加えて、誰ならリクエストしていいかを制御できる。

rulesメソッド

rulesメソッドではルールの配列を返す必要がある。今までcontrollerに書いていたバリデーションをこのRequestコントローラに別で書くことができる。

使い方

これらの使い方は、バリデーションが必要なリクエストがきた時に引数に加える。

以下がサンプル。

ちなみに、これらのバリデーションにひっかかったときは、controllerは自動的に前の画面に遷移してくれるから便利。

他のページに遷移させたいときはredirect()を使って、別途処理を書く必要がある。

またmessagesメソッドを加えて、エラーのときのフラッシュの文言を追加することが出来る。

結論、めちゃ便利。