Php Laravel中间件获取路由参数
我正在编写“学校俱乐部管理系统”之类的代码,遇到了一些资源权限授权方面的问题 假设有Php Laravel中间件获取路由参数,php,laravel,Php,Laravel,我正在编写“学校俱乐部管理系统”之类的代码,遇到了一些资源权限授权方面的问题 假设有club,并且club有经理,我想先检查用户是否是club的经理,然后再使用中间件对其进行管理 使用laravel 5.2 我的路由器看起来像: public function handle($request, Closure $next) { if (!Auth::check()){ // ask user to login }
club
,并且club
有经理,我想先检查用户是否是club
的经理,然后再使用中间件对其进行管理
使用laravel 5.2
我的路由器
看起来像:
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);
}
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);
}
但是我无法从请求中获取俱乐部的id
我怎样才能解决这个问题
提前谢谢。Woops,我在检查dd($requests)
后找到了ans
我可以使用$requests->club
获取参数
谢谢大家。如果您正在查找url参数,下面是从中间件中的laravel 5.2中的资源路由中获取url参数的最佳方法。假设您希望从url club/edit/{id}获取id参数
$request->route()->parameter('id');
较短的语法是:
$request->route('parameter_name');
我在拉维5.5和
dd($request->route()->parameter('id'));
dd($request->route('id'));
为我工作而且在执行findOrFail之前进行存在性检查是公平的,因为请求是否使用了数据!空($request->club)或by$request->has('club')以避免不必要的数据库读取。通过检查源代码,您可以将参数名称传递给route方法,其工作方式与此相同,$request->route('id')