2016-08-03 16 views
1

ミドルウェアでモデルを使用して特定の操作を実行したいと考えています。ここで私が達成したいものの例は次のとおりです。Laravel 5のリクエストからurlパラメータを取得する方法は?

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から目的のパラメータを取得することができますか?

+0

"request-> param( 'item')" GET/POSTパラメータを要求していますか? – pbalazek

+0

@pbwnedはURLパラメータです。例えば、 '/ item/{id}'ルートから 'id'部分を抽出してください。 –

答えて

3
public function handle(Request $request, Closure $next) 
{ 
    $itemId = $request->item; 
    //.............. 

} 
5

パラメータは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); 
} 

がこれを有することに基づいていますroute like:'/getItem/{item}'

+1

私はエラーを受け取りました: 'getParameter()'メソッドが存在しません。私はこのようなパラメータを持っています: '$ request-> route() - > parameters ['item']' –

関連する問題