繁体   English   中英

在中间件中获取 Laravel 路由 {slug}

[英]Get laravel route {slug} in middleware

我正在 Laravel 中实现基于角色的访问系统,我想通过 moddileware 验证每个请求。 所以我想在我的中间件中路由{slug} ,基于那个 slug,我想检查用户是否有权访问该请求。 我怎样才能做到这一点?

我的路线代码:

Route::group(['middleware' => 'testmiddleware'], function ($router) {
        Route::get('{slug}', 'App\Http\Controllers\UserController@getAuthenticatedUser');
});

如果您想在testmiddleware中的路由中获取{slug}参数的值,您可以按如下方式实现:

$request->route('slug')

为组添加前缀

Route::group(['prefix' => "{slug}", 'middleware' => 'testmiddleware'], function () {
    Route::get('/', 'App\Http\Controllers\UserController@getAuthenticatedUser'); // it will geneate url {slug}
    Route::get('blog', 'App\Http\Controllers\Blog@getBlogs');// it will geneate url {slug}/blog
    Route::post('user', 'App\Http\Controllers\Users@getUsers'); // it will geneate url {slug}/user
});

然后在中间件中你会得到

$request->slug
  • 这样你会得到slug所有组无需添加所有路由

参考链接https://laravel.com/docs/8.x/routing#route-group-prefixes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM