会话可以存储数据(键和值),Laravel提供各种后端会话,可以在config / session.php中设置。
默认设置的文件会话将会话保存在storage / framework / sessions /目录中的文件中。在生产环境中,我们将考虑使用数据库会话,redis会话等,但在开发环境中,使用默认的文件会话就足够了。
小兔网学习专题:php session (包含图文、视频、案例)
如何在Laravel中使用会话(session)
使用Laravel操作会话有两种主要方法。
一种是通过传递给操作的Request实例。
使用Illuminate \ Session \ Store实例。
// 从会话中获取指定的数据//在没有存在键的情况下,将返回的默认值指定为第二参数$value = $request->session()->get('key’);$value = $request->session()->get('key', 'default’);$value = $request->session()->get('key', function () { return 'default';});// 获取会话中的所有数据$data = $request->session()->all();// 检查指定的数据是否存在于会话中if ($request->session()->exists('key')) { // 存在}if ($request->session()->has('key')) { // null不存在}// 将数据保存到会话$request->session()->put('key', 'value');$request->session()->put(['key1' => 'value1', 'key2' => ‘value2']);// 从会话取得指定的数据后,删除该数据$value = $request->session()->pull('key', 'default’);// 从会话中删除指定的数据$request->session()->forget('key');// 从会话中删除所有数据$request->session()->flush();
另一种方法是使用全局辅助函数session()。
使用Illuminate \ Session \ SessionManager实例。
// 从会话中获取指定的数据// 在没有存在键的情况下,将返回的默认值指定为第二参数$value = session('key’);$value = session('key', 'default');$value = session('key', function () { return 'default';});$value = session()->get(‘key');$value = session()->get('key', 'default');$value = session()->get('key', function () { return 'default';});// 取得会话中的全部数据$data = session()->all();// 检查指定的数据是否存在于会话中if (session()->exists('key')) { // 存在}if (session()->has('key')) { // null不存在}// 保存数据到会话session(['key1' => 'value1', 'key2' => ‘value2']);session()->put(['key1' => 'value1', 'key2' => 'value2']);// 从会话取得指定的数据后,删除该数据$value = session()->pull('key', 'default’);// 从会话中删除指定的数据session()->forget('key');// 从会话中删除所有数据session()->flush();
我们来看在Laravel中使用会话(session)的具体示例
一个非常简单的例子
我们定义以下路线。
routes/web.phpRoute::get('/put-data', function () { session()->put(['email' => '该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。']); return session()->get('email');});Route::get(‘/list-data', function () { return session()->all();});
首先,在浏览器中访问/ put-data时,会执行第一条路径,可以确认数据已保存在会话中。
该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。
接下来,在浏览器中访问/ list-data时,将执行第二条路径,可以确认之前保存的数据是否已保留
{"email":"该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。","_previous":{"url":"http:\/\/localhost:8000\/put-data"},"_flash":{"old":[],"new":[]},"_token":"UYcsteOQAj58e9Aay5uNc3V4F0fSpi9VfEBlKhTZ"}
当然还有其他数据,但这些是自动保存的数据,Laravel本身也在使用会话。
以上就是Laravel处理session(会话)的方法详解的知识。速戳>>知识兔学习精品课!