我可以更改在 laravel 的身份验证系统中使用的模型用户吗?
Posted
技术标签:
【中文标题】我可以更改在 laravel 的身份验证系统中使用的模型用户吗?【英文标题】:Can I change Model User that used in auth system in laravel? 【发布时间】:2020-07-03 14:15:43 【问题描述】:我尝试更改使用命令 php artisan ui:auth 时默认使用的用户模型 到另一个模型 但是所有的方法都行不通 应该怎么做? 我正在使用 laravel 7.x 版
【问题讨论】:
【参考方案1】:出于各种原因,您可以根据需要拥有不同(或尽可能多的不同)模型。您只需要更改config/auth.php
中的相关部分。我总是使用 Models 目录,所以我对新应用做的第一件事就是重新定位 User 模型,然后告诉 Auth 在哪里寻找它:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
如果您有自定义逻辑,您还必须在控制器中更新模型的 use
语句,但对于普通 Laravel Auth 设置,您只需更改配置即可。
编辑:如果您确实有像我这样的结构(模型目录),则默认 App\User 命名空间声明必须在模型本身上进行更改:
变化:
namespace App;
收件人:
namespace App\Models;
或者任何与你的结构相匹配的东西。
【讨论】:
我使用 vue auth 设置而不是 vanilla 我这样做但它不起作用 @AddyDeveloper,确保命名空间匹配。默认为App\User
;如果你在模型中有它,那么模型的命名空间必须更改为App\Models\User
,等等。如果你使用 JWT 或其他东西,它会有点取决于你的身份验证工作流程是什么样的,但最后最重要的是,它仍然归结为确保工作流在正确的位置/命名空间中寻找模型。
@AddyDeveloper,我编辑添加了一个示例,说明模型本身需要更改的内容,如果您需要这样做,那么您的命名空间声明是正确的。以上是关于我可以更改在 laravel 的身份验证系统中使用的模型用户吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用身份验证护照系统覆盖 laravel 中 apis url 的身份验证重定向