Laravel session
会话用于在请求中存储关于用户的信息。Laravel提供各种驱动程序,如 文件,cookie,apc,数组,Memcached,Redis 和 数据库 来处理会话数据。默认情况下使用文件驱动程序,因为它是轻量级的。会话可以在 config / session.php 文件中 配置 。
访问会话数据
要访问会话数据,我们需要一个可以通过HTTP请求访问的会话实例。得到实例后,我们可以使用 get() 方法,该方法需要一个参数 key 来获取会话数据。
$value = $request->session()->get('key');
您可以使用 all() 方法来获取所有会话数据而不是 get() 方法。
存储会话数据
数据可以使用 put() 方法存储在会话中。该 认沽() 方法将两个参数, “关键” 和 “价值” 。
$request->session()->put('key', 'value');
删除会话数据
该 忘了() 方法用于从会话中删除的项目。这个方法将把 关键 作为参数。
$request->session()->forget('key');
使用 flush() 方法而不是 forget() 方法来删除所有会话数据。使用 pull() 方法从会话中检索数据,然后将其删除。pull()方法也将 键 作为参数。 forget() 和 pull() 方法之间的区别在于, forget() 方法不会返回会话的值, pull() 方法会返回它并从会话中删除该值。
例
第1步 - 通过执行以下命令创建一个名为 SessionController 的控制器。
php artisan make:controller SessionController --plain
第2步 - 成功执行后,您将收到以下输出 -
第3步 - 将以下代码复制到文件中
应用程序/ HTTP /控制器/ SessionController.php。
应用程序/ HTTP /控制器/ 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 文件中添加以下行。
应用程序/ HTTP / routes.php文件
Route::get('session/get','SessionController@accessSessionData'); Route::get('session/set','SessionController@storeSessionData'); Route::get('session/remove','SessionController@deleteSessionData');
第5步 - 访问以下URL以 在会话中设置数据 。
http://localhost:8000/session/set
第6步 - 输出将如下图所示。
第7步 - 访问以下URL以 从会话中获取数据 。
http://localhost:8000/session/get
第8步 - 输出将如下图所示。
第9步 - 访问以下URL以 删除会话数据 。
http://localhost:8000/session/remove
第10步 - 您将看到一条消息,如下图所示。
下一章:Laravel 验证
验证是设计应用程序时最重要的方面。它验证传入的数据。默认情况下,基本控制器类使用 ValidatesRequests 特性,该特性提供了一种方便的方法来验证具有各种强大验证规则的传入HTTP请求。 Larav ...