问题描述
我正在编写学校俱乐部管理系统"之类的代码,并遇到有关资源权利授权的问题.
I am coding some thing like 'school club manage system' and meet some problem on rights authorization of resource .
假设有club
,并且club
有经理,并且我想在用户可以使用中间件进行管理之前,检查用户是否为club
的经理.
Suppose there are club
, and club
have manager , and i want to check if the user is a manager of club
before he can manage it with a middleware.
使用laravel 5.2
Using laravel 5.2
我的router
看起来像这样:
Route::resource('club', 'ClubController');
我创建的中间件看起来像这样:
The middleware I create looks like that :
public function handle($request, Closure $next)
{
if (!Auth::check()){
// ask user to login
}
$club = Club::findOrFail($request->input('club'));
$user = Auth::user();
if (!$club->managers->contains($user)){
//tell user your are not manager .
}
return $next($request);
}
但是我没能从requests
那里获得club的ID.
But I failed to get the id of club from requests
.
我该如何解决问题?
谢谢.
推荐答案
如果要查找url参数,则从中间件内部的laravel 5.2中的资源路由获取该参数的最佳方法如下.假设您要获取ID参数形式,网址为club/edit/{id}
if you are looking for the url parameters the best way of getting that from the resource routes in laravel 5.2 inside the middleware is below. Lets say you want to get id parameter form url club/edit/{id}
$request->route()->parameter('id');
这篇关于Laravel中间件获取路由参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!