Laravel的session()和request() - > session()之间的真正区别是什么?

时间:2017-07-12 13:44:32

标签: php laravel session laravel-5.2

我正在开发一个很大程度上依赖于会话的Laravel(5.2)项目,虽然很新但我很好奇全球session()和Http request()->session()除了它们有什么区别之外访问和写入会话的不同方式?

以下是laravel 5.4 doc,

中有关此内容的一些信息

enter image description here

不幸的是,这并不能让我理解其中的差别。我也有 googled和stackoverflowed 也许我找不到答案无济于事。示例是laravel difference of session::flash and request->session->flash,但我对答案不太满意

他们在管理会话数据方面有什么真正的区别?我不会介意参考文档,或者即使我必须深入研究laravel核心。

由于

3 个答案:

答案 0 :(得分:10)

session()是一个帮助程序,可让您更快地访问request() - > session()

请注意,request()也是一个帮助程序,可以更快地访问请求对象。

没有区别,只是一条捷径。

答案 1 :(得分:0)

我认为这会对你有所帮助: $ request-> session()和session()都是一样的。

在Laravel中使用会话数据有两种主要方式:session()帮助器中的全局函数和$ request实例。

你可以像这样使用它

9,007,199,254,740,991

答案 2 :(得分:0)

不幸的是,Laravel笔记已经给出了最佳答案;我现在只能证明这一点,因为我曾经注意到这种情况。

我不明白为什么全局session('key')在同一方法中拒绝回显$request->session()->put('key', 'value')的值。希望我再次遇到这种情况只是为了证明,但我想给您的最后答复是:

“没有区别,这只是捷径。”

Cos就像提到的文档一样,在实践中有明显的区别