ミドルウェアのモデルで特定の操作を実行したい。これが私が達成したいことの例です:
public function handle($request, Closure $next)
{
$itemId = $request->param('item'); // <-- invalid code, serves for illustration purposes only
$item = Item::find($itemId);
if($item->isBad()) return redirect(route('dont_worry'));
return $next($request);
}
私の質問は、$request
から目的のパラメーターを取得するにはどうすればよいですか?
public function handle(Request $request, Closure $next)
{
$itemId = $request->item;
//..............
}
パラメータがURLの一部であり、このコードがミドルウェアで使用されている場合、指定されたルートから名前でパラメータにアクセスできます。
public function handle($request, Closure $next)
{
$itemId = $request->route()->getParameter('item');
$item = Item::find($itemId);
if($item->isBad()) return redirect(route('dont_worry'));
return $next($request);
}
これは次のようなルートに基づいています:'/getItem/{item}'