Laravel - 如何使用除用户table以外的其他table登录?

Laravel - How to use other table except users table for login?

几年前,我在 Plain PHP 中编写了一个基于 PHP 的 Web 应用程序。现在出于某种原因,我想升级 Laravel 中的那个项目。但是当我想 Laravel 默认身份验证 (由 php artisan make:auth 完成).

时,我遇到了一个问题

因为,旧项目使用user_account来存储用户信息(用户名、密码等),但目前我所知道的,Laravel使用userstable来存储用户信息。

无法将 user_account 重命名为 users 来解决问题。

有什么方法可以在 Laravel 中 user_account 以便 Laravel 在 [=22= 期间使用 table ]登录、注册等..

我也有这样的问题。我的问题是将数据从 Wordpress 传输到 java spring 引导,问题是用户 table.So 我的解决方案是强制在旧项目(Plain PHP)中加密密码并将其用于laravel 项目。

您可以尝试在您的用户模型中添加以下行(User.php)。

protected $table = 'user_account';

尝试转到 USER 模型并将 table 名称重命名为您想要的名称,添加以下行:

protected $table = 'user_account';

这样我认为您不需要更改很多代码,并且您会将默认的 "users" 名称更改为您的自定义名称。

您还应该能够修改 "protected $fillable" 数组中的字段。但是我不确定所有这些在核心代码中是否有问题。

简单而甜蜜, 转到 User.php 文件(用户模型)

protected $table = 'user_account';

来自 Laravel Eloquent 模型命名约定 documentation:

按照惯例,class 的复数名称 "snake case" 将用作 table 名称,除非明确指定另一个名称。您可以通过在模型上定义 table 属性 来指定自定义 table:

protected $table = 'table_name';

因此,在您的情况下,您可以转到 User 模型并覆盖其默认值(复数名称大小写)table 绑定并定义:

protected $table = 'user_account';

我想这会解决你的问题。

为了实现这个目标,你在很多地方做出了改变。

型号

app/User.php 更新用户模型,如果您没有更改默认路径

protected $table = 'users';

控制器

RegisterContoller 上,您需要更新验证规则,它会检查唯一的电子邮件。