Правильно ли получать данные сеанса в функции хранилища и сохранять их в db?
public function store(){
...
$idgroup = Session::get('invitation_userid')];
...
}
Или нужна функция хранения всегда как объект запроса?
public function store(Request $request){
...
$idgroup = $request('idgroup');
...
}
В обеих функциях, конечно же, есть часть проверки входных данных.






Оба подхода хороши, но вы должны использовать их в соответствии с вашим вариантом использования, я предпочитаю использовать данные Request. Основное отличие состоит в том, что если вы сохраните его внутри Session, он будет доступен для всего приложения, а если вы отправите внутри Request, он будет доступен только внутри метода.
Это полностью зависит от контекста того, как на самом деле назван ваш контроллер, как используются эти данные и почему вы не используете драйвер сеанса базы данных в первую очередь, если хотите это сделать.
Вы можете просто использовать драйвер базы данных для сеанса:
https://laravel.com/docs/5.7/session#introduction
Это также зависит от того, как назван ваш контроллер, если вы строго хотите следовать спокойным маршрутам:
https://gist.github.com/alexpchin/09939db6f81d654af06b
Чтобы ответить на второй вопрос, вам не всегда нужен объект Request в вашем действии store. В большинстве случаев вы даже не увидите объект Request, потому что вы просто создаете совершенно новый ресурс.
Помощник глобальной сессии Вы также можете использовать функцию PHP глобального сеанса для извлечения и хранения данных в сеансе. Когда помощник сеанса вызывается с одним строковым аргументом, он возвращает значение этого сеансового ключа. Когда помощник вызывается с массивом пар ключ / значение, эти значения будут сохранены в сеансе:
$value = session('key');