Laravel Sentinel 引用了错误的配置文件

Laravel Sentinel referencing the wrong config file

所以我在 Laravel 5.1 中使用 Cartalyst Sentinel 来管理身份验证和角色。起初我下载了这个包,并在 vendor/../EloquentUser class 中添加了额外的查询范围和定义关系。 Composer 今天更新了包,自然我的所有代码都被删除了。在这一点上,我意识到我需要拥有自己的用户 class,它扩展了 EloquentUser 并修改了发布的配置文件以使用我自己的用户 class。然而,Sentinel 似乎正在使用 /vendor 目录中的配置文件,因为当我修改那个文件以使用我的用户模型时,它起作用了,即查询范围和关系开始对我的用户起作用。但是更改已发布的配置对我的应用程序没有影响。

我对 Laravel 和 composer 以及所有来自 Codeigniter 的东西还很陌生,所以也许我在设置它时做错了什么或搞砸了?

这里有 Laravel 的设置步骤:

https://cartalyst.com/manual/sentinel/2.0#laravel-5

对于 Laravel 5.1,我做了一些更改

编辑 config/app.php:

$提供商数组

Cartalyst\Sentinel\Laravel\SentinelServiceProvider::class,

$别名数组

'Activation' => Cartalyst\Sentinel\Laravel\Facades\Activation::class,
'Reminder'   => Cartalyst\Sentinel\Laravel\Facades\Reminder::class,
'Sentinel'   => Cartalyst\Sentinel\Laravel\Facades\Sentinel::class,

运行 此命令用于将所需的迁移和应用程序配置发布到您的项目文件夹中

php artisan vendor:publish --provider="Cartalyst\Sentinel\Laravel\SentinelServiceProvider"

我在此处记录了如何扩展 Eloquent 用户

http://naomiaro.com/2015/07/08/multiple-login-attributes-with-sentinel-and-laravel/

use Cartalyst\Sentinel\Users\EloquentUser as SentinelUser;

class User extends SentinelUser {

}

在其发布的配置文件中告诉 Sentinel 您正在使用哪个用户模型 config/cartalyst。sentinel.php

'users' => [

    'model' => 'Namespace\User',

],

好吧,我已经研究 Laravel 一段时间了,并且了解它如何更好地工作。

我犯的错误是我在我的文件顶部包含了这个声明(老实说 Cartalyst 的文档是这样的,我认为它对新手有误导性):

use Cartalyst\Sentinel\Native\Facades\Sentinel;

然后做:

Sentinel::getUser();

很明显它引用了供应商(本机)文件夹中的配置文件。

正确的方法是使用顶部的 Sentinel Facade:

use Sentinel;

然后它会引用发布的配置文件。

希望对犯同样错误的新手有所帮助。 :)