【发布时间】:2021-01-12 00:31:38
【问题描述】:
我正在尝试将管理员重定向到管理面板页面并将用户重定向到主页
我为用户类型创建了新字段,并在数据库中添加了值“admin”
$table->string('usertype')->nullable();
然后我创建了这个中间件(AdminMiddleware):
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if(Auth::user()->usertype == 'admin')
{
return $next($request);
}
else
{
return redirect('/dashboard');
}
}
}
然后我将它添加到内核:
'admin' => \App\Http\Middleware\AdminMiddleware::class,
我将函数添加到 RouteServiceProvider 并导入类:
public const HOME = '/dashboard';
protected function redirectTo()
{
if(Auth::user()->usertype == 'admin')
{
return 'panel';
}
else
{
return 'dashboard';
}
}
然后我将路由添加到 web.php:
Route::get('/', function () {
return view('index');
});
Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
return view('index');
})->name('dashboard');
Route::group(['middleware' => ['auth:sanctum','auth','admin','verified']],function() {
Route::get('/panel', function () {
return view('admin.dashboard');
});
});
我创建了两个帐户,其中一个是用户类型为“admin”的管理员 但是当我登录时它仍然将我重定向到主页
我在这里做错了什么?
【问题讨论】:
标签: php laravel admin panel middleware