簡體   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