リクエスト(request)とは、簡単に言えば、「これください!」って他のファイルに頼む事です。
LaravelのControllerでよく使う public function xxx (Request $request) だったら、「サイトを閲覧してるお客さんがブラウザから入力したデータを渡してください」という意味になります。
というわけで、図解でLaravel初心者でもよく分かるように解説します。
→Laravel初心者が絶望するController,Blade,Routesの関係が図解でよく分かる!
LaravelにおけるRequestとは?
まず、そもそもRequestとはなんなのかを図で説明するとこういう事です。
図のように、ネット閲覧者からの「〇〇のページが見たい」というリクエストがLaravelなどのウェブ開発におけるrequestなんです。
そしてそのページを提供する事をレスポンス(response)と言います。
LaravelのControllerの Request $request とは?
では、今度はLaravelのコントローラーによく出てくる
public function xxx (Request $request) とはなんなのかを説明します。
このカッコ内のRequest というのは、「サイト閲覧者がフォームから入力したデータを受け取る」という意味があります。
例えば、口コミサイトを作ったなら、口コミ投稿フォームがありますよね。
ブログを作ったとしても、ブログ記事の投稿フォームがあるはずです。
この投稿されたデータをデータベースにしまうのがコントローラーの仕事です。
なので、Controller の Request というのは、
フォームに投稿されたデータをBladeにリクエストしてるって事なんです。
→LaravelのController.phpとは?初心者向けにやさしく図入りで解説
→Laravelのblade.phpとは?普通の.phpと何が違う?初心者必須の知識!
なぜ Request $request と2回書くのか?
まず、カッコ内の最初のRequestというのは、実際には、Illuminate\Http\Request を省略したものです。
→Laravelのuseとは?超初心者向けにシンプルに分かりやすく解説
このIlluminate\Http\RequestというLaravelのシステムが、フォームのデータを拾ってくれるので、まずfunctionの()にRequestと書くわけです。
そして、その受け取ったデータをコントローラー内では、$requestという変数で使うため、
「Requestのデータは$requestとして使うよ」と宣言してるわけです。
そして、先程のフォームを例に出すなら、
項目が1つではなく、複数ありますよね。なので、
それぞれの項目や取得したい情報(ユーザーIDなど)を
blade.php側のフォームのnameから取得します。
これがblade.phpに書かれたフォームです。それぞれname="xxx"というのが付いてますよね。
それをcontroller側のリクエストで受け取ります。
このコードのように、$request->title とか $request->qid のように、先程のnameを合わせる事で、それぞれのデータが取得できるわけです。
取得したデータは、save()というコマンドを使って、データベースに保存する事ができますし、他にもJavascriptやpythonなどの別の言語に渡して使ったりなど、様々な事ができます。
LaravelのControllerでは、Request以外にも使う事ができる
ちなみに、public function xxx(Request $request) の部分のカッコ内は、別の変数を使う事もできます。
例えば、下の黄枠部分は、blade.phpに書かれたaタグ(リンク)です。
このリンクを踏むと、CrudController@showというファンクションが呼び出されると同時に、$val->wordという変数を渡す設定になってます。
この辞書サイトの「ゴリ」をクリックすると、$wordが「ゴリ」になります。
この場合は、コントローラーには Request を使わず、そのまま$word と書く事で、
ブレードで使われている変数をそのままコントローラーに渡す事ができます。
フォームで入力されたわけではないので、Requestは使ってませんが、このようにblade側の変数をカッコ内に書く事で、渡す事もできます。この場合なら「ゴリ」という単語が渡るわけです。
今回みたいに$request以外にも変数が使えるから原理を覚えておくと便利だよ。
というわけで、LaravelのRequestがなんなのか、分かったでしょうか。