目录

Laravel - 会议( Session)

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

访问会话数据

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

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

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

存储会话数据

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

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

删除会话数据

forget()方法用于从会话中删除项目。 此方法将以key作为参数。

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

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

例子 (Example)

Step 1 - 通过执行以下命令创建一个名为SessionController的控制器。

php artisan make:controller SessionController --plain

Step 2 - 成功执行后,您将收到以下输出 -

SessionController

Step 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.";
   }
}

Step 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');

Step 5 - 访问以下URL以set data in session

http://localhost:8000/session/set

Step 6 - 输出将如下图所示。

会话中的数据

Step 7 - 访问以下URL以get data from session

http://localhost:8000/session/get

Step 8 - 输出将如下图所示。

维拉特甘地

Step 9 - 访问以下URL以remove session data

http://localhost:8000/session/remove

Step 10 - 您将看到如下图所示的消息。

会议
↑回到顶部↑
WIKI教程 @2018