- Laravel 教程
- Laravel - 主页
- Laravel - 概述
- Laravel - 安装
- Laravel - 应用结构
- Laravel - 配置
- Laravel - 路由
- Laravel - 中间件
- Laravel - 命名空间
- Laravel - 控制器
- Laravel - 请求
- Laravel - Cookie
- Laravel - 响应
- Laravel - 视图
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 数据库操作
- Laravel - 错误与日志
- Laravel - 表单
- Laravel - 本地化
- Laravel - 会话
- Laravel - 验证
- Laravel - 文件上传
- Laravel - 发送邮件
- Laravel - Ajax
- Laravel - 错误处理
- Laravel - 事件处理
- Laravel - 门面
- Laravel - 合约
- Laravel - CSRF 保护
- Laravel - 认证
- Laravel - 授权
- Laravel - Artisan 控制台
- Laravel - 加密
- Laravel - 散列
- 理解发布流程
- Laravel - 客人用户门限
- Laravel - Artisan 命令
- Laravel - 分页自定义
- Laravel - Dump 服务器
- Laravel - 动作 URL
- Laravel 有用资源
- Laravel - 快速指南
- Laravel - 有用资源
- Laravel - 讨论
Laravel - 会话
会话用于存储跨请求的用户相关信息。Laravel 提供各种驱动程序,如文件、Cookie、apc、数组、Memcached、Redis,和数据库来处理会话数据。默认情况下,使用文件驱动程序,因为它很轻量。可以在存储在config/session.php的文件中配置会话。
访问会话数据
要访问会话数据,我们需要会话的实例,该实例可以通过 HTTP 请求进行访问。获取实例后,我们可以使用get()方法,该方法将获取一个参数,“键”,以获取会话数据。
$value = $request->session()->get('key');
你可以使用all()方法来获取所有会话数据,而不是get()方法。
存储会话数据
可以使用put()方法在会话中存储数据。put()方法将获取两个参数,“键”和“值”。
$request->session()->put('key', 'value');
删除会话数据
forget()方法用于从会话中删除一项。此方法将获取“键”作为参数。
$request->session()->forget('key');
使用 flush() method 代替 the forget() method 来删除所有会话数据。使用 pull() method 来从会话中检索数据,之后将其删除。pull() method 也将获取键作为参数。forget() 和 pull() 方法之间的区别在于,forget() 方法不会返回会话值,而 pull() 方法会返回会话值,并从会话中删除该值。
示例
步骤 1 − 执行以下命令,创建一个名为SessionController的控制器。
php artisan make:controller SessionController --plain
步骤 2 − 执行成功后,你会收到以下输出 −
步骤 3 − 将以下代码复制到
app/Http/Controllers/SessionController.php.
app/Http/Controllers/SessionController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class SessionController extends Controller { public function accessSessionData(Request $request) { if($request->session()->has('my_name')) echo $request->session()->get('my_name'); else echo 'No data in the session'; } public function storeSessionData(Request $request) { $request->session()->put('my_name','Virat Gandhi'); echo "Data has been added to session"; } public function deleteSessionData(Request $request) { $request->session()->forget('my_name'); echo "Data has been removed from session."; } }
步骤 4 − 在app/Http/routes.php文件中添加以下代码行。
app/Http/routes.php
Route::get('session/get','SessionController@accessSessionData'); Route::get('session/set','SessionController@storeSessionData'); Route::get('session/remove','SessionController@deleteSessionData');
步骤 5 − 访问以下 URL 以在会话中设置数据。
https://127.0.0.1:8000/session/set
步骤 6 − 输出将显示在下图所示。
步骤 7 − 访问以下 URL 以获取会话中的数据。
https://127.0.0.1:8000/session/get
步骤 8 − 输出将显示在下图所示。
步骤 9 − 访问以下 URL 以删除会话数据。
https://127.0.0.1:8000/session/remove
步骤 10 − 你会看到一个消息,如下面图像所示。