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

],
Другие вопросы по тегам