我將背包 4 用于 laravel(laravel 8)并且無法為用戶頁面撰寫路由。登錄后用戶必須獲取/user/dashboard 或/dashboard,但用戶被重定向到/admin/dashboard。我怎么解決這個問題?
網頁.php
Route::get('/', function() {
return redirect()->route('backpack.auth.login');
});
Route::get('/user/dashboard', [DashboardUserController::class, 'index'])->middleware(['web','admin']);
uj5u.com熱心網友回復:
如果您的用戶永遠不需要使用 Backpack 并且應該只能查看儀表板,您可以向 Backpack 的一組中間件添加一個新的中間件,以檢查您的用戶是管理員還是普通用戶,如果他們不是,則重定向他們管理員。
因為 Backpack 自己注冊登錄路由,所以你不能只在注冊時將中間件添加到路由中。相反,您需要將您的中間件添加到 Backpack 的admin中間件組。那就是添加到所有管理路由的那個。
腳步:
- 創建新的中間件:
php artisan make:middleware RedirectToDashboard
- 在以下位置打開新的中間件
app/Http/Middleware/RedirectToDashboard.php - 將
handle方法更改為如下所示:
public function handle(Request $request, Closure $next)
{
if($request->user()->isNormalUser()) { // You need to change this to the check if the user is a normal user, that's specific to your application
return redirect()->to('dashboard'); // 'dashboard' is the name of your route, you may need to change it.
}
return $next($request);
}
- 將新的中間件添加到 Backpack 中的默認中間件集
config/backpack/base.php。打開檔案并查找middleware_class條目(最有可能在第 220 行附近)。添加\App\Http\Middleware\RedirectToDashboard::class到陣列中。 - 以普通用戶身份登錄 Backpack 并檢查您是否被重定向。
uj5u.com熱心網友回復:
/admin前綴來自 config/backpack/base.phproute_preffix從檔案中洗掉。
您的用戶將被重定向到/dashboard.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/338724.html
