Забудь про $_SESSION и глобальные переменные — Laravel делает всё через фасад Session или объект запроса. Сессии просты, но если ими не пользоваться правильно, можно нагородить костылей.
Создание сессии
// Через метод put Session::put('username', 'JohnDoe');
// Через массив session(['username' => 'JohnDoe']);
Просто. Данные сохраняются и доступны между запросами.
Получение данных
$username = Session::get('username', 'Guest');
Если в сессии нет username — вернётся 'Guest'. Не нужно лишних проверок.
Проверка и удаление
if (Session::has('username')) {
// Пользователь залогинен
}
// Удаляем конкретное значение Session::forget('username');
// Удаляем всё Session::flush();
forget и flush — это как швабра для мусора в сессии.
Использование в контроллерах
В контроллерах удобнее через объект запроса:
public function store(Request $request)
{
// Сохраняем данные
$request->session()->put('username', 'JohnDoe');
// Получаем данные
$username = $request->session()->get('username', 'Guest');
}
Так проще тестировать и не дергать фасад глобально.
Заключение
Сессии в Laravel — это удобно, быстро и понятно. Главное — не хранить в них лишнее и использовать правильно: put/forget/get, и всё будет работать.
0 комментариев