authentication - 如何在 Laravel 7 中使用另一个表进行身份验证
问题描述
我对 Laravel 很陌生,已经看过很多教程,所以现在我知道的很少。但我正在努力解决一个我无法解决的问题。我想使用我的数据库中已经存在的另一个表(t_clients)而不是迁移创建的用户表进行身份验证。我已经阅读了网站上的文档,所以我在 auth.php 中进行了更改:
'providers' => [
// 'users' => [
// 'driver' => 'eloquent',
// 'model' => App\User::class,
// ],
'users' => [
'driver' => 'database',
'table' => 't_clients',
],
],
现在,当我尝试登录时,出现下一个错误:ErrorException Undefined index: id
。所以我尝试了下一个,这个问题是临时解决的,我将表“t_clients”中的primary_key名称更改为“id”并且登录有效。原始列名是“pk_client”。但我实际上希望 primary_key 保持不变。我实际上希望通过身份验证,Laravel 搜索“pk_client”而不是“id”。有谁知道我该如何解决这个问题?我感谢您的帮助。
规范项目:Laravel Framework 7.1.0 mysql Ver 8.0.18
解决方案
This problem was fixed by making a Client EloquentModel and add de next lines:
protected $table = 't_clients';
protected $primaryKey = 'pk_client';
So the result should be:
class Client extends Authenticatable implements CanResetPassword
{
protected $table = 't_clients';
protected $primaryKey = 'pk_client';
use Notifiable;
}
推荐阅读
- r - ggplot2和一组抖动/闪避点
- python - 使用python获取子目录列表中的文件名
- javascript - 如何从 SXSSFWorkbook 创建 PIVOT 表 - APACHE POI
- javascript - 如何跨浏览器一致地导出 csv 数据?
- docker - Docker 撰写 yml 替代品
- python - Django Forms.py 将 EmailField 值更改为自动填充 value="{{ user.email }}"
- reactjs - React 在状态更改后重新渲染子组件
- c - 没有数据发送时如何跳过 recv() 函数
- javascript - 使用 WebUSB 从串行设备读取整个响应
- python-3.x - 如何迭代数据类型为列表的数据框中的列