Функция получения данных сеанса в магазине

Правильно ли получать данные сеанса в функции хранилища и сохранять их в db?

public function store(){    
  ...
  $idgroup = Session::get('invitation_userid')];
  ...
}

Или нужна функция хранения всегда как объект запроса?

public function store(Request $request){    
  ...
  $idgroup = $request('idgroup');
  ...
}

В обеих функциях, конечно же, есть часть проверки входных данных.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
77
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Оба подхода хороши, но вы должны использовать их в соответствии с вашим вариантом использования, я предпочитаю использовать данные Request. Основное отличие состоит в том, что если вы сохраните его внутри Session, он будет доступен для всего приложения, а если вы отправите внутри Request, он будет доступен только внутри метода.

Это полностью зависит от контекста того, как на самом деле назван ваш контроллер, как используются эти данные и почему вы не используете драйвер сеанса базы данных в первую очередь, если хотите это сделать.

Вы можете просто использовать драйвер базы данных для сеанса:

https://laravel.com/docs/5.7/session#introduction

Это также зависит от того, как назван ваш контроллер, если вы строго хотите следовать спокойным маршрутам:

https://gist.github.com/alexpchin/09939db6f81d654af06b

Чтобы ответить на второй вопрос, вам не всегда нужен объект Request в вашем действии store. В большинстве случаев вы даже не увидите объект Request, потому что вы просто создаете совершенно новый ресурс.

Помощник глобальной сессии Вы также можете использовать функцию PHP глобального сеанса для извлечения и хранения данных в сеансе. Когда помощник сеанса вызывается с одним строковым аргументом, он возвращает значение этого сеансового ключа. Когда помощник вызывается с массивом пар ключ / значение, эти значения будут сохранены в сеансе:

$value = session('key');

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