laravel - Laravel 6.x,我正在尝试将 URL 主页更改为自定义自己的 URL。因为我正在构建身份验证默认登录和注册
问题描述
当我登录页面时,它会重定向到主页,但我需要根据web.php文件将主页替换为自定义 URL.also 自定义 URL。
在web.php文件中
Route::get('/home', 'HomeController@index')->name('home');
Route::get('index/sign',function (){
return view('login-page');
})->name('login-page');
Route::middleware(['auth','admin'])->group(function () {
Route::get('index/admin',function (){
return view('admin');
});
Route::get('index/student',function (){
return view('student');
});
Route::get('index/staff',function (){
return view('staff');
});
});
在RouteServiceProvider.php文件
public const HOME = '/home';
中 在RegisterController.php文件
protected $redirectTo = RouteServiceProvider::HOME;
中 在LoginController.php文件中
protected function redirectTo()
{
if ((Auth::user())->user_role == 'admin')
{
return 'admin';
}
elseif ((Auth::user())->user_role == 'staff')
{
return 'staff';
}
elseif ((Auth::user())->user_role == 'student')
{
return 'student';
}
else
{
return redirect('sign');
}
}```
解决方案
考虑到@apokryfos 评论,使用命名路由你可以做这样的事情
Route::middleware(['auth','admin'])->group(function () {
Route::get('index/admin',function (){
return view('admin');
})->name('admin');
Route::get('index/student',function (){
return view('student');
})->name('student');
Route::get('index/staff',function (){
return view('staff');
})->name('staff');
});
然后你的 redirectTo 方法可能看起来像这样
protected function redirectTo()
{
if ((Auth::user())->user_role == 'admin')
{
return route('admin');
}
elseif ((Auth::user())->user_role == 'staff')
{
return route('staff');
}
elseif ((Auth::user())->user_role == 'student')
{
return route('student');
}
else
{
return redirect('sign');
}
}```
推荐阅读
- c# - 使用 C# 检查另一个列表中的值
- powershell - 使用 .NET SQLConnection 类的 PowerShell 脚本相互干扰
- css - CSS中的foreach循环
- java - 如何用分离的纳秒解析时间
- html5-canvas - 使用 HTML Canvas 制作 Choropleth Map
- python - 管理用于测试自动化的 Python 和 Python 包版本
- java - Java Spring 工作流程
- java - Observable.timer rxjava 不适用于指数回退
- c - 如何使用 Windows 使用 tcc 构建库?
- c - (C) 只需要 1 个参数的递归 strcpy()