Php 如何在laravel 8中使用我自己预先存在的表进行身份验证?

Php 如何在laravel 8中使用我自己预先存在的表进行身份验证?,php,laravel,web,eloquent,laravel-8,Php,Laravel,Web,Eloquent,Laravel 8,我在laravel 8中安装了auth,但我不想使用用于身份验证用户的默认表,因为我有我的表Users\u-inf。在这种情况下,我不能使用迁移,Users\u-inf还有200条记录。 用户输入者id、密码、用户名、权限、活动、创建时间、更新时间。 由我创建和更新,以与laravel兼容。 我使用用户名登录,而不是电子邮件。请你对这个问题有什么建议。在我看来,你有两个选择。要么修改用户表以包含这些字段,然后将数据从一个表导入到另一个表,要么更新用户模型以使用该表。在任何情况下,都必须指示Lar

我在laravel 8中安装了auth,但我不想使用用于身份验证用户的默认表,因为我有我的表Users\u-inf。在这种情况下,我不能使用迁移,Users\u-inf还有200条记录。 用户输入者id、密码、用户名、权限、活动、创建时间、更新时间。 由我创建和更新,以与laravel兼容。
我使用用户名登录,而不是电子邮件。请你对这个问题有什么建议。

在我看来,你有两个选择。要么修改用户表以包含这些字段,然后将数据从一个表导入到另一个表,要么更新用户模型以使用该表。在任何情况下,都必须指示Laravel使用用户名字段进行身份验证。就我个人而言,我建议你走第一条路,因为那是拉拉维尔路

方法1:更改用户表 改变users表的迁移,类似于此。我建议您保留ID字段ID,而不是指定您自己的用户ID,因为这也是Laravey的做法

架构::创建“用户”,函数蓝图$表{ $table->id'user_id';//$table->id; $table->string'user\u name'->唯一; $table->string'privilege'->可为空; $table->string'password'; $table->booleanactive->defaulttrue; $table->rememberToken; $table->timestamps; }; 然后,要将数据移到上面,请运行以下SQL查询

在用户中插入用户id、用户名、权限、活动、密码、创建时间、更新时间 选择用户id、用户名、权限、活动、密码、创建时间、更新时间 来自用户\u inf作为用户界面 如果不存在,请选择1 来自用户作为u 其中u.user\u name=ui.user\u name 现在,您只需要指示Laravel使用用户名字段,我们将在本答案的底部介绍该字段

方法2:改变用户模型 通过向模型添加简单属性,Laravel允许您指定哪个表和哪个字段是主键。在用户模型类中,添加以下两行:

受保护的$table='users\u inf'; 受保护的$primaryKey='user_id'; 对于这两种方法:使用用户名字段作为登录名 只需将username方法添加到用户模型类,该类返回Laravel在给定表中查找用户时应使用的字段

公共函数用户名 { 返回“用户名”; }
Laravel将免费为您提供这么多功能,当使用适当的命名约定时,许多功能将更加无缝地工作。我建议您遵循Laravel标准和命名约定,因为这将使整个框架更易于使用。

您可以在config/auth.php中更改模型提供程序,查找“model”=>App\User::class,并将其更改为您的类,例如App\UsersInf::class谢谢,我将尝试您的方法。非常感谢。