我目前正在構建我的第一個幼蟲應用程序。中間件覆蓋Laravel中的其他中間件
我有兩種用戶類型:buyers
和sellers
。但是,他們都可以訪問相同的路線,但他們需要提供不同的模板和數據。例如,兩者都可以訪問/home
,但看到完全不同的東西。
我知道我可以在路線中使用一條if語句,但這會變得混亂。爲了嘗試解決這個問題,我使用兩個不同的路由組創建了兩個獨立的中間件。每個中間件檢查權限的用戶,並記錄他們,如果他們沒有它,就像這樣:
if (Auth::user()->role !== 'buyer') {
return redirect('login');
}
我的目標:
- 如果用戶isBuyer「,它只是讀取中間件路由組。
- 如果用戶'isSeller',它只讀取該中間件組。
我希望能串聯使用兩種:
// this will be triggered if they have the role 'buyer'
Route::group(['middleware' => 'isBuyer'], function() {
Route::get('/', function () {
return view('/home-seller');
});
});
//this will be triggered if they have the role 'seller'
Route::group(['middleware' => 'isSeller'], function() {
Route::get('/', function () {
return view('/home-buyer');
});
});
但它永遠不會讀取第二組。由於第一組上的身份驗證測試失敗,它將我註銷。
我認爲這是因爲它在完成閱讀routes.php文件之前應用中間件過濾器。 對於不同的用戶類型使用相同的路由最好處理什麼?