【发布时间】:2021-04-12 03:12:18
【问题描述】:
我将 laravel 8 与现有的用户表一起使用。除了密码重置链接功能外,一切都按预期工作。这是因为我的表的电子邮件列名称为“电子邮件”而不是“电子邮件”。其他应用程序使用此表,因此无法更改列名。如果我在框架本身中手动设置列名(下面的示例),我可以使密码重置链接功能正常工作。
文件:/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php
public function retrieveByCredentials(array $credentials)
{
// framework code that retieves the user record for email address
if ($res) {
$res->email = $res->Email;
}
// rest of frame work code
}
这似乎有点“hacky”。有更好的方法吗?
Laravel 将受益于更多关于用户表的自定义(自定义用户表名、列名等)。
【问题讨论】:
-
只需复制这些工作代码并在控制器中过去,这将被覆盖
-
您使用什么入门工具包进行身份验证脚手架?
-
"Laravel 将受益于更多关于用户表的自定义(自定义用户表名、列名等)。"在 Laravel 中基本上没有什么是你不能自定义的,你可以争论它是否是最优的。但请先阅读文档。
-
阅读源代码我在EloquentUserProvider 中看不到它依赖
email而不是Email的任何地方我认为这全部委托给作为样板发布但可以修改而不是部分框架代码 -
您可以创建自定义函数并根据标志调用它。
标签: php laravel authentication laravel-8