我是 Laravel 的初学者。我正在使用 Guard 进行多重授权。我在管理员登录中遇到此问题: TypeError Illuminate\Auth\SessionGuard::login(): Argument #1 ($user) 必须是 Illuminate\Contracts\Auth\Authenticatable、App\Models\Admin 类型,在中调用C:\Users\DELL\survey\app\Http\Controllers\AdminController.php 第 34 行
这是 AdminController.php 文件
<?php
namespace App\Http\Controllers;
use App\Models\Admin;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Contracts\Auth\Authenticatable;
class AdminController extends Controller
{
public function login()
{
return view('admin.login');
}
public function authenticate(Request $request)
{
$request->validate([
'email' => ['required', 'email'],
'password' => ['required']
]);
/** @var Admin $model */
$model = Admin::query()->where('email', $request->get('email'))->firstOrFail();
if(!$model){
return back()->with('error', 'Email or password is incorrect');
}
if (!Hash::check($request->get('password'), $model->password)) { …Run Code Online (Sandbox Code Playgroud)