Laravel - Session

会话用于在请求中存储有关用户的信息. Laravel提供各种驱动程序,如文件,cookie,apc,数组,Memcached,Redis,数据库来处理会话数据.默认情况下,使用文件驱动程序,因为它是轻量级的.可以在 config/session.php 中存储的文件中配置会话.

访问会话数据

访问会话数据,我们需要一个可以通过HTTP请求访问的会话实例.获取实例后,我们可以使用 get()方法,该方法将使用一个参数"key"来获取会话数据.

$value = $request->session()->get('key');

您可以使用 all()方法获取所有会话数据,而不是 get()方法.

存储会话数据

可以使用 put()方法将数据存储在会话中. put()方法将采用两个参数,"key""value".

$request->session()->put('key', 'value');

删除会话数据

forget()方法用于删除项目来自会议.此方法将"key"作为参数.

$request->session()->forget('key');

使用 flush()方法代替 forget()方法删除所有会话数据.使用 pull()方法从会话中检索数据并在之后将其删除. pull()方法也将 key 作为参数. forget() pull()方法之间的区别在于 forget()方法不会返回会话的值并且 pull()方法将返回它并从会话中删除该值.

示例

步骤1 : 通过执行以下命令创建一个名为 SessionController 的控制器.

php artisan make:controller SessionController --plain

第2步 : 成功执行后,您将收到以下输出 :

SessionController

第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步 : 访问以下网址在会话中设置数据.

http://localhost:8000/session/set

第6步 : 输出将如下图所示.

会话中的数据

第7步 : 访问以下网址,以从会话中获取数据.

http://localhost:8000/session/get

第8步 : 输出将如下图所示.

Virat Gandhi

第9步 : 访问以下网址删除会话数据.

http://localhost:8000/session/remove

第10步 : 您将看到如下图所示的消息.

Session