質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

4回答

4778閲覧

laravel5のコントローラーでよく使われるこれって・・・

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

3クリップ

投稿2016/10/28 04:14

かなり初歩的なことなのかもしれませんが、コントローラーでよく使われる

public function test(Request $request) { }

この部分のRequest $requestって具体的にどういった意味なんでしょうか。
リクエストが使えるようになるのは知ってるんですが、よくわからないまま使っていたので・・・。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

技術的には、メソッドインジェクションという、依存性注入を利用するための書き方になります。

ざっくり簡単に書きますと、Laravelではコントローラのコンストラクタやメソッドの引数に
処理で使いたいクラスを型と共に書くと、いつの間にか引数に入ってきて、
インスタンス化(newとか)を意識せずにそのまま利用できるという特徴があります。
この機能を使って、Requestクラスを内部で使うようにする書き方をしているわけです。

PHP

1// モデルをメソッドインジェクションする例 2public function index(User $user) 3{ 4 return $user->all(); 5}

で、そのRequestIlluminate\Http\Request)クラスですが、
これまたざっくりと話すと、ユーザーからのリクエストに関する様々な情報を持ち、
それら情報を使いやすくするためのメソッド等を持つクラスです。

HTTPリクエスト

様々な情報というのは、例えば以下のようなものです。

  • $_GET や $_POST値
  • アップロードファイル($_FILES)
  • サーバ情報($_SERVER)
  • クッキー($_COOKIE)
  • などなど

サーバへのリクエストが来た段階で上記の情報をまとめて、内部でRequestを生成しています。
その生成されたクラスを、メソッドインジェクションで呼んできて、
例えばユーザの入力値を得るために$request->all()とか使っているわけですね。

投稿2016/10/28 05:24

Archsted

総合スコア452

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/11/01 01:36

すごくわかりやすかったです。ありがとうございます!
guest

0

質問の意味が違ってたらすいませんが、

Request $requestの
$requestはその内部データで
Requestは$requestのクラス名です

Requestは以下にあるクラスが使われてます。
vendor/laravel/framework/src/Illuminate/Http/Request.php
$requestにはGETやPOSTやServer情報などが入ってます。

投稿2016/10/28 05:19

編集2016/10/28 05:28
kaji

総合スコア648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

この部分のRequest $requestって具体的にどういった意味なんでしょうか。

リクエストとレスポンスのざっくりした概念的な意味を知りたいという質問でしょうか?
とりあえずその前提で、、

リクエスト

文字通り、ユーザーがブラウザなどを使って特定のウェブサイトを表示したいというリクエストの事ですが、
ブラウザはその時、希望するページのURLや、時にはcookieやGET、POSTなどのデータを一緒にサーバーに送ってきます。

フレームワークを使わない場合スーパーグローバル変数を使ってその値とかを取り出したりするのですが、より使いやすくするため、フレームワークはリクエストオブジェクトとしてそのオブジェクトにブラウザから送られたさまざまな情報をセットしてくれます。

という事でブラウザから送られてきた様々な情報を使いやすくまとめてくれた塊みたいな感じと考えれば良いかなと思います。

ついでにレスポンス

逆にレスポンスはリクエストで希望されたページをブラウザに送信するわけですが、その時ブラウザに送り返す内容をレスポンスにセットする事になります、通常あまり何も考えなくてもフレームワークがやってくれて見えづらい部分もありますが、こんな感じでレスポンスの内容をセットできます。

投稿2016/10/28 05:10

編集2016/10/28 05:14
hiim

総合スコア1689

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://readouble.com/laravel/5.3/ja/requests.html

依存注入により、現在のHTTPリクエストインスタンスを取得するには、タイプヒントでIlluminate\Http\Requestクラスをコントローラーメソッドに指定します。現在のリクエストインスタンスが、サービスプロバイダにより、自動的に注入されます。

投稿2016/10/28 04:42

timy

総合スコア168

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問