0

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

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

4

2 回答 2

2

There's steps for setup with Laravel here:

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

For Laravel 5.1 I've made a couple changes

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

Run this command to publish needed migrations and application config into your project folders

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

I've documented how to extend the Eloquent User here

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

use Cartalyst\Sentinel\Users\EloquentUser as SentinelUser;

class User extends SentinelUser {

}

Tell Sentinel which User model you're using in its published config file config/cartalyst.sentinel.php

'users' => [

    'model' => 'Namespace\User',

],
于 2015-07-22T06:42:26.640 回答
0

好的,所以我一直在修补 Laravel 并了解它如何更好地工作。

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

use Cartalyst\Sentinel\Native\Facades\Sentinel;

然后做:

Sentinel::getUser();

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

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

use Sentinel;

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

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

于 2015-08-05T18:49:11.940 回答