如何在 Laravel 7 中使用另一个 table 进行身份验证

How can I use another table for authentication in Laravel 7

我是 Laravel 的新手,已经看过很多教程,所以现在我知道的不多了。但我正在为一个我无法解决的问题而苦苦挣扎。我想使用我的数据库中已经存在的另一个 table(t_clients) 而不是迁移创建的用户 table 进行身份验证。我已经阅读了网站上的文档,所以我在 auth.php 中更改为:

    'providers' => [
//        'users' => [
//            'driver' => 'eloquent',
//            'model' => App\User::class,
//        ],
         'users' => [
             'driver' => 'database',
             'table' => 't_clients',
         ],
    ],

现在,当我尝试登录时,出现下一个错误:ErrorException Undefined index: id。所以我尝试了下一个,这个问题是临时解决的,我将 table "t_clients" 中的 primary_key 名称更改为 "id" 并且登录有效。原来的列名是"pk_client"。但我实际上希望 primary_key 保持不变。我实际上希望通过身份验证,Laravel 搜索 "pk_client" 而不是 "id"。有谁知道我该如何解决这个问题?我感谢您的帮助。

具体项目: Laravel 框架 7.1.0 mysql 版本 8.0.18

此问题已通过创建客户端 EloquentModel 并添加下一行来解决:

protected $table = 't_clients';
protected $primaryKey = 'pk_client';

所以结果应该是:

class Client extends Authenticatable implements CanResetPassword
{
    protected $table = 't_clients';
    protected $primaryKey = 'pk_client';
    use Notifiable;
}