可能的原因是未正确设置管理员认证的 guard。可以尝试在 admin guard 的 driver 中指定对应的 User 模型,例如:
// config/auth.php
'guards' => [
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
],
'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => App\Models\Admin::class,
],
],
其中,App\Models\Admin
应替换成管理员的实际模型类名。
如果以上配置正常,还需确定管理员是否已成功登录。可在控制器中使用中间件 auth:admin
进行认证,例如:
// app/Http/Controllers/AdminController.php
namespace App\Http\Controllers;
class AdminController extends Controller
{
public function index()
{
$admin = auth()->guard('admin')->user();
if (! $admin) {
return redirect()->route('admin.login');
}
// 其他操作
}
}