Laravel 8 用户 table 列名称
Laravel 8 user table column names
我正在与现有用户 table 一起使用 laravel 8。除了密码重置 link 功能外,一切都按预期工作。这是因为我的 table 的电子邮件列名称为“电子邮件”而不是“电子邮件”。其他应用程序使用此 table,因此无法更改列名。如果我在框架本身内手动设置列名称(如下示例),我可以使密码重置 link 功能正常工作。
文件:/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 将大大受益于有关用户 table 的更多自定义(自定义用户 table 名称、列名称等)。
Laravel
有 mutators
和 accessors
。这样您就可以更改 -> 电子邮件访问或分配它的行为。将此代码段添加到您的 User.php
模型中。
class User {
public function getEmailAttribute()
{
return $this->attributes['Email'];
}
}
您可以阅读有关它的 docs。函数的命名约定是get{PropertyName}Attribute
,如果你这样定义你的函数,你可以很容易地覆盖Laravel
中的属性逻辑。使其使用 column Email
.
我正在与现有用户 table 一起使用 laravel 8。除了密码重置 link 功能外,一切都按预期工作。这是因为我的 table 的电子邮件列名称为“电子邮件”而不是“电子邮件”。其他应用程序使用此 table,因此无法更改列名。如果我在框架本身内手动设置列名称(如下示例),我可以使密码重置 link 功能正常工作。
文件:/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 将大大受益于有关用户 table 的更多自定义(自定义用户 table 名称、列名称等)。
Laravel
有 mutators
和 accessors
。这样您就可以更改 -> 电子邮件访问或分配它的行为。将此代码段添加到您的 User.php
模型中。
class User {
public function getEmailAttribute()
{
return $this->attributes['Email'];
}
}
您可以阅读有关它的 docs。函数的命名约定是get{PropertyName}Attribute
,如果你这样定义你的函数,你可以很容易地覆盖Laravel
中的属性逻辑。使其使用 column Email
.