【问题标题】:Can I change Model User that used in auth system in laravel?我可以更改在 laravel 的身份验证系统中使用的模型用户吗?
【发布时间】:2020-07-03 14:15:43
【问题描述】:

我尝试更改使用命令 php artisan ui:auth 时默认使用的用户模型 到另一个模型 但是所有的方法都行不通 应该怎么做? 我正在使用 laravel 7.x 版

【问题讨论】:

    标签: laravel authentication model-view-controller laravel-blade laravel-7


    【解决方案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,我编辑添加了一个示例,说明模型本身需要更改的内容,如果您需要这样做,那么您的命名空间声明是正确的。
    猜你喜欢
    • 2011-11-19
    • 2016-10-23
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    相关资源
    最近更新 更多