2016-08-03 92 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所需的參數?

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); 
} 

這是基於具有:

+0

「request-> param('item')」您的意思是請求GET/POST參數嗎? – pbalazek

+0

@pbwned只是一個URL參數。例如,從'/ item/{id}'路徑中提取'id'部分'route –

回答

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

} 
5

如果該參數是URL的一部分,該代碼是在中間件被使用,你可以通過它的名字從給出的路徑訪問參數路線如:'/getItem/{item}'

+1

我得到錯誤:'getParameter()'方法不存在。我得到了這樣的參數:'$ request-> route() - > parameters ['item']' –