拉拉维尔多级身份验证



我正在使用现有的Laravel项目。因此,在该项目中,前一个安装两个身份验证文件夹,一个用于管理员和客户端。现在我的角色是添加卖方部件。我为卖方部分创建了单独的模型和控制器,但是当我尝试通过任何系统使用卖方电子邮件和密码登录时,将卖方电子邮件搜索到客户端数据库表中。 我的卖家登录代码:

$credentials = $request->only('seller_email','seller_password');
if (Auth::attempt($credentials)){
return redirect()->intended(route('seller.dashboard'));
}
return redirect()->intended(route('seller.login'));

但它搜索客户表为什么?

SQLSTATE[42S22]:找不到列:1054 未知列"seller_email" 在"where 子句"中(SQL:从clients中选择 * 其中seller_email= dr@seller.com 限制 1(;

配置/身份验证.php文件看起来像

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'clients',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'api' => [
'driver' => 'jwt',
'provider' => 'clients',
],
'seller' => [
'driver' => 'session',
'provider' => 'sellers',
]
],
'providers' => [
'clients' => [
'driver' => 'eloquent',
'model' => AppModelsClient::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => AppModelsAdmin::class,
],
'sellers' => [
'driver' => 'eloquent',
'model' => AppSeller::class,
]
],

尝试登录时使用卖家防护

if (Auth::guard('seller')->attempt($credentials)){
return redirect()->intended(route('seller.dashboard'));
}

最新更新