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

时间:2015-07-14 11:49:08

标签: laravel-5 cartalyst-sentinel

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

我对Laravel和作曲家以及来自Codeigniter的所有人都很新,所以也许我在设置时做错了什么或搞砸了?

2 个答案:

答案 0 :(得分:2)

这里有使用Laravel进行设置的步骤:

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

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

编辑config / app.php:

$ providers array

Cartalyst\Sentinel\Laravel\SentinelServiceProvider::class,

$ aliases array

'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',

],

答案 1 :(得分:0)

好的,所以我一直在修补Laravel一段时间,并且知道它是如何更好的。

我犯的错误是我将此声明包含在我的文件顶部(老实说Cartalyst的文档已经如此,我认为它对新手的误导):

use Cartalyst\Sentinel\Native\Facades\Sentinel;

然后做:

Sentinel::getUser();

显然,它引用了供应商(Native)文件夹中的配置文件。

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

use Sentinel;

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

我希望这可以帮助任何其他犯同样错误的新手。 :)