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;
然后它会引用发布的配置文件。
希望对犯同样错误的新手有所帮助。 :)
所以我在 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;
然后它会引用发布的配置文件。
希望对犯同样错误的新手有所帮助。 :)