不明点
いささか投げやりな質問になってしまうかもしれません。申し訳ございません。
laravelのミドルウェアの役割、特にhandleメソッドの引数として渡されている"$request"と"$next"の働きが理解できません。
発生している問題
手元の参考資料「PHPフレームワーク Laravel入門」のP114に**”$nextで返されるのは「レスポンス($response)」インスタンス”**との記載がありますが、そもそもレスポンスのインスタンスとは何なのかが理解できていない為、残念ながらこの説明では何のことなのか分かりませんでした。
HelloMiddleawre.php
<?php namespace App\Http\Middleware; use Closure; class HelloMiddleware { public function handle($request, Closure $next) { $data=[ ['name'=>'taro','mail'=>'taro@yamada'], ['name'=>'hanako','mail'=>'hanako@flower'], ['name'=>'satiko','mail'=>'satiko@happy'], ]; $request->merge(['data'=>$data]); //※1 return $next($request); //※2 } }
Hellocontroller.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; class HelloController extends Controller { public function index(Request $request){ return view('hello.index',['data'=>$request->data]); //※1-1 } }
###質問内容
※1の$request->merge()で設定した値を※1-1でどんな理屈で受け取っているのか
あくまでイメージですが、※1は $request=['data'=>'$data'] のような処理でしょうか?
1-1のviewの第2引数は $request['data'] なら理解ができるんですが、アロー演算子のせいで混乱しています。
※2のreturnでクライアントに返す値は、何が入っているのか
仮に$requestの中にレンダリングされたデータが入っているなら return $request; でいいじゃないか、と思ってしまう
書いているうちに少しだけ頭が整理できましたが、やはり理解できない箇所が多いです。
何か1つでもヒントになるようなご回答をいただければ幸いです。
回答4件
あなたの回答
tips
プレビュー