Почему Auth :: user () возвращает null в маршрутах пользовательского поставщика услуг? - PullRequest
0 голосов
/ 02 апреля 2019

Я создаю новый сервис под названием Factures в App\Services\Factures. Я создал \App\Services\Factures\FacturesServiceProvider:

public function register() {
    $this->app->bind('factures', function ($app) {
        return new Facture;
    });
}

public function boot() {
    // laod Routes
    $this->loadRoutesFrom(__DIR__ .'/Http/routes.php');

    // load Views
    $this->loadViewsFrom(__DIR__ . '/views', 'factures');
}

Я зарегистрировал своего провайдера, все работает нормально, ожидайте, что Auth::user() in вернет мне null в представлениях и routes.php.

Как мне получить доступ к Auth () в пользовательском сервисе?

1 Ответ

0 голосов
/ 02 апреля 2019

Это сообщение решило мою проблему: Аутентификация пользователя не сохраняется в пакете Laravel

Я выяснил, что Laravel применяет к файлу маршрутов по умолчанию / web.php промежуточное ПО под названием «web» Ине применяет эту группу к маршрутам внешних пакетов, загружаемых через поставщика услуг.

Поэтому мои маршруты в пользовательском файле должны быть в web middleware:

Route::group(['middleware' => ['web']], function () {
    Route::get('testing-services', function(){
        dd(Auth::user());
        // output is valid
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...