【发布时间】:2017-09-26 10:38:30
【问题描述】:
我试图了解会话在 Laravel 5(.4) 中是如何工作的。 一方面,如the official documentation 中所述,有两种使用它们的方法:
在 Laravel 中有两种主要的会话数据处理方式:全局会话助手和通过请求实例。
$request->session()->put('key', 'value');
和
session(['key' => 'value']);
文档说:
通过 HTTP 请求实例使用会话与使用全局会话助手之间几乎没有实际区别。
但从来没有解释过有什么区别。
另一方面是“门面方式”:
Session::put('key', 'value');
最近我发现了这个 Stack Overflow 问题How to use session in laravel 5.2 controller。 train_fox这样指出:
session()->put('key', 'value');
所以总共有四种方式。而且我无法弄清楚为什么或何时使用一种或另一种。有人知道这四个之间的区别吗?
顺便说一句,我可以让会话与 Redis 一起工作的唯一方法是使用最后两种方法。
提前感谢您的启发。
【问题讨论】:
-
所有都是有效的,你可以使用任何人,关于半径我没有检查过。但所有其他作品都很完美。有些是 Facad,有些是帮助功能,让生活更轻松。
session()是一个辅助函数。 -
无论您选择哪种方式,它仍然只是指同一个会话,当我提到会话时,我的意思是相同的会话 ID 和与之关联的相同数据。您使用哪一个并不重要,因为它仍然是同一个会话。我使用会话助手是因为我发现它更方便。