laravel-5.7 - 尝试多用户身份验证,它一直说传递了错误的参数实例
问题描述
我在尝试使用警卫登录多个用户并且无法理解需要传递的实例时遇到此错误:
Argument 1 passed to
Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an
instance of Illuminate\Contracts\Auth\Authenticatable, instance of
App\Employs given, called in /var/www/html/crmproject/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php on line 379
这是我的身份验证控制器:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class EmploysLoginController extends Controller
{
use AuthenticatesUsers;
protected $guard = 'Employs';
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/Employs';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function showLoginForm()
{
return view('auth.employe-login');
}
public function login(Request $request)
{
if (auth()->guard('Employs')->attempt(['email' => $request->email, 'password' => $request->password])) {
dd(auth()->guard('Employs')->user());
}
return back()->withErrors(['email' => 'Email or password are wrong.']);
}
}
这是我的模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Authenticatable;
// use Illuminate\Contracts\Auth\Authenticatable as
AuthenticatableContract;
class Employs extends Model// implements AuthenticatableContract
{
protected $primaryKey = 'employ_id';
}
我尝试了许多在线/stackoverflow 提供的解决方案,但我不断收到此错误,如果您发现此问题有歧义,请在投反对票之前询问,我上次在这里尝试过。
解决方案
你应该创建一个这样的模型:
模型
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Employs extends Authenticatable
{
use Notifiable;
protected $guard = 'Employs';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
我希望这对你有用。
推荐阅读
- angular - Ionic v4 和 Angular 无法获取循环生成幻灯片的 ion-slide 的内部文本
- javascript - 将类更改为可编辑的表格单元格
- xamarin.forms - 当前台服务启动 xamarin.form android 时,应用程序在 android 8.0 上崩溃
- android - 如何在 Kotlin 的枚举类上泛化函数?
- python - 从 S3 解压缩文件,写入 CSV 文件并推回 S3
- asp.net - 如何在活动目录中创建基于用户角色重定向的登录页面
- android - MPAndroidChart 右标签的文本对齐
- python - 在python中生成一个包含6维唯一元素的列表
- r - 在变量组中重新分配列值
- sql - Postgresql 选择计数查询需要很长时间