Laravel 的 session() 和 request()->session() 之间的真正区别是什么?
What is the real difference between Laravel's session() and request()->session()?
我正在开发一个严重依赖会话的 Laravel(5.2) 项目,虽然很新,但我只是好奇全局 session()
和 Http request()->session()
有什么区别因为他们有不同的访问和写入会话的方式?
以下是我从 laravel 5.4 文档
获得的关于此的一些信息
不幸的是,这并不能真正让我理解其中的区别。我也 google 和 Whosebuged 也许我能找到无济于事的答案。示例是 laravel difference of session::flash and request->session->flash 但我对答案不太满意
他们在管理会话数据方面的真正区别是什么?我不介意参考文档,即使我必须深入研究 laravel 核心。
谢谢
session() 是一个帮助程序,可以让您更快地访问 request()->session()
请注意,request() 也是一个帮助程序,可让您更快地访问请求对象。
没有区别,只是一个捷径。
我认为这会对您有所帮助:
$request->session() 和 session() 都是一样的。
在 Laravel 中有两种处理会话数据的主要方法:session() 助手中的全局函数和通过 $request 实例。
你可以这样使用它
public function testMyMethod(Request $request){
//$userExist = $request->session()->exists('user_id');
$userExist = $request->session()->has('user_id');
}
遗憾的是,最佳答案已经在Laravel注释中给出了;我现在只能证明这一点,因为我曾经注意到过这种情况。
我不明白为什么全局 session('key')
拒绝在同一方法中回显 $request->session()->put('key', 'value')
的值。希望我能再次遇到这种情况只是为了证明,但我想给你的最后回复是:
"There are no differences, it's just a shortcut."
因为就像提到的文档一样,在实践中存在显着差异
我正在开发一个严重依赖会话的 Laravel(5.2) 项目,虽然很新,但我只是好奇全局 session()
和 Http request()->session()
有什么区别因为他们有不同的访问和写入会话的方式?
以下是我从 laravel 5.4 文档
获得的关于此的一些信息不幸的是,这并不能真正让我理解其中的区别。我也 google 和 Whosebuged 也许我能找到无济于事的答案。示例是 laravel difference of session::flash and request->session->flash 但我对答案不太满意
他们在管理会话数据方面的真正区别是什么?我不介意参考文档,即使我必须深入研究 laravel 核心。
谢谢
session() 是一个帮助程序,可以让您更快地访问 request()->session()
请注意,request() 也是一个帮助程序,可让您更快地访问请求对象。
没有区别,只是一个捷径。
我认为这会对您有所帮助: $request->session() 和 session() 都是一样的。
在 Laravel 中有两种处理会话数据的主要方法:session() 助手中的全局函数和通过 $request 实例。
你可以这样使用它
public function testMyMethod(Request $request){
//$userExist = $request->session()->exists('user_id');
$userExist = $request->session()->has('user_id');
}
遗憾的是,最佳答案已经在Laravel注释中给出了;我现在只能证明这一点,因为我曾经注意到过这种情况。
我不明白为什么全局 session('key')
拒绝在同一方法中回显 $request->session()->put('key', 'value')
的值。希望我能再次遇到这种情况只是为了证明,但我想给你的最后回复是:
"There are no differences, it's just a shortcut."
因为就像提到的文档一样,在实践中存在显着差异