Laravel Sentinel ссылается на неправильный файл конфигурации
Поэтому я использую Cartalyst Sentinel для управления аутентификацией и ролями в Laravel 5.1. Сначала я скачал пакет и добавил дополнительные области запросов и определил отношения в классе vendor/../EloquentUser. Composer обновил пакет сегодня и, естественно, весь мой код был удален. В этот момент я понял, что мне нужен собственный класс User, который расширил EloquentUser и изменил опубликованный файл конфигурации, чтобы использовать мой собственный класс User. Однако кажется, что Sentinel использует файл конфигурации в каталоге /vendor, потому что, когда я изменяю этот файл для использования моей модели User, он работает, то есть области запросов и отношения начинают работать на моих пользователей. Но изменение опубликованного конфига не влияет на мое приложение.
Я довольно новичок в Laravel и композиторе и всех остальных, пришедших из Codeigniter, так что, возможно, я что-то не так делаю или испортил при настройке?
2 ответа
Итак, я немного поработал с Laravel и узнал, как он работает лучше.
Ошибка, которую я сделал, состояла в том, что я включил это заявление в начало моего файла (честно, в документации Cartalyst было так, я думаю, что это вводит в заблуждение новичка):
use Cartalyst\Sentinel\Native\Facades\Sentinel;
а затем делать:
Sentinel::getUser();
Очевидно, что это была ссылка на файл конфигурации в папке vendor (Native).
Правильный способ - использовать Sentinel Facade сверху:
use Sentinel;
а затем он будет ссылаться на опубликованный файл конфигурации.
Я надеюсь, что это поможет любому другому новичку, который делает ту же ошибку.:)
Там есть шаги для настройки с Laravel здесь:
https://cartalyst.com/manual/sentinel/2.0#laravel-5
Для Laravel 5.1 я сделал пару изменений
Отредактируйте config/app.php:
массив провайдеров
Cartalyst\Sentinel\Laravel\SentinelServiceProvider::class,
массив $ aliases
'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 User здесь
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',
],