У меня есть свежий дистрибутив Laravel 5.1. Первым делом я начал расширять класс Guard
, чтобы реализовать собственный драйвер auth. Я действительно новичок в Laravel. Итак, вот что я сделал до сих пор.Laravel 5.1 Сессии не работают
конфигурации/auth.php
'driver' => 'crm',
Поставщики/AuthServiceProvider.php
public function boot(GateContract $gate)
{
Auth::extend(
'crm',
function ($app) {
$model = $app['config']['auth.model'];
$provider = new EloquentUserProvider($app['hash'], $model);
return new CrmGuard($provider, $app->make('session.store'));
}
);
}
В настоящее время у меня уже есть идентификатор пользователя, хранящуюся в массиве сеанса, и я могу получить доступ к нему через
session_start();
$_SESSION['user_id'];
Но я хочу использовать сборку Laravel в управлении сеансами. Я пытаюсь переписать user
метод Guard
класса в моем CrmGuard
классе, и мне нужно, чтобы получить эти значения из сессии, я пытался как так
$id = $this->session->get('user_id');
и так
session('user_id')
Вот как я пытаюсь назвать метод user
во время тестирования
Route::get('/', function() {
\Illuminate\Support\Facades\Auth::user();
//return view('welcome');
});
Но он всегда возвращает NULL, что я сделал не так? Спасибо.
Является ли этот маршрут покрыта 'web' промежуточного слоя? Вы можете быстро проверить с помощью 'php artisan route: list'. – TheFallen
В нем говорится, что я использую промежуточное ПО 'auth', что я могу сделать? –
Возможно, потому, что я добавил «middleware» => 'auth' на мой маршрут, потому что мне нужно, чтобы все маршруты были безопасными, но когда я добавляю «middleware» => «web», он говорит, что 'Class web не существует' –