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 − 執行成功後,你會收到以下輸出 −

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 − 訪問以下 URL 以在會話中設定資料

https://:8000/session/set

步驟 6 − 輸出將顯示在下圖所示。

Data in Session

步驟 7 − 訪問以下 URL 以獲取會話中的資料

https://:8000/session/get

步驟 8 − 輸出將顯示在下圖所示。

Virat Gandhi

步驟 9 − 訪問以下 URL 以刪除會話資料

https://:8000/session/remove

步驟 10 − 你會看到一個訊息,如下面影像所示。

Session
廣告