我正在创建一个 Laravel 5.8 应用程序,并且我有一个现有应用程序,其用户在 SQL 表中注册。我能够连接到 sql,因此 .env 文件是正确的,但我需要在身份验证过程中使用自定义字段。我检查了在线指南,但从指南中使用的 5.6 或更早版本到 5.8 似乎发生了很多变化。谁能帮我弄清楚如何首先将用户名字段更改为“用户名”而不是“电子邮件”,我已经尝试覆盖 app\Controllers\Auth\LoginController.php 中的函数,但这只是一直说“这些凭据可以不符合我们的记录。” 在错误部分。我当前名为“users_custom”的表包含以下字段:
- id(唯一,int(5))
- 用户名 (varchar(100))
- 密码 (varchar(100)) 注意:这是一个较旧的 md5 编码密码。我也需要 Laravel 哈希格式的帮助,如果可能的话,不需要用户重新输入密码。
- passphrase (varchar(200)) //这是在早期版本中为 DialogFlow 制作的。这不需要由 laravel 访问/检查。
我的应用程序不适用于用户的电子邮件,因此我的用户表中不存在该字段。我protected $table='users_custom';
在用户模型中定义。
编辑:解决
不知道如何,但是当我重新开始使用默认的 Auth 控制器和 User 模型时,我只是将表名更改为protected $table = users_custom
并添加public function username() { return 'username'; }
到 LoginController 中,它现在可以工作了。