所以我使用Cartalyst Sentinel来管理Laravel 5.1中的身份验证和角色。起初我下载了包,并在供应商/../ EloquentUser类中添加了额外的查询范围和定义关系。 Composer今天更新了包,自然我的所有代码都被删除了。此时我意识到我需要拥有自己的User类,它扩展了EloquentUser并修改了已发布的配置文件以使用我自己的User类。然而,似乎Sentinel正在/ vendor目录中使用配置文件,因为当我修改那个使用我的用户模型时,它可以工作,即查询范围和关系开始对我的用户起作用。但更改已发布的配置对我的应用程序没有影响。
我对Laravel和作曲家以及来自Codeigniter的所有人都很新,所以也许我在设置时做错了什么或搞砸了?
答案 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;
然后它将引用已发布的配置文件。
我希望这可以帮助任何其他犯同样错误的新手。 :)