我正在编写像“学校俱乐部管理系统”这样的东西,并且在资源的权利授权方面遇到了一些问题。
假设有club
,club
有经理,我想在用中间件管理用户之前检查用户是否是club
的经理。
使用laravel 5.2
我的router
看起来像这样:
Route::resource('club', 'ClubController');
我创建的中间件看起来像这样:
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
得到俱乐部的身份。
我该如何解决这个问题?
提前致谢。
答案 0 :(得分:5)
如果您正在寻找url参数,那么从中间件内部的laravel 5.2中的资源路径获取该参数的最佳方法如下所示。假设您想获取id参数表单url club / edit / {id}
$request->route()->parameter('id');
答案 1 :(得分:1)
Woops,我在检查dd($requests)
后找到了ans。
我可以使用$requests->club
来获取参数。
谢谢大家。
答案 2 :(得分:1)
一个简短的语法是:
$request->route('parameter_name');
答案 3 :(得分:0)
我正在使用Laravel 5.5和
dd($request->route()->parameter('id'));
dd($request->route('id'));
为我工作