laravel cookie
在處理web應用程序中的用戶會話時,cookie起著重要作用。在本章中,您將學習如何在基于laravel的web應用程序中使用cookie。
創建一個cookie
cookie可以由laravel的全局cookie助手創建。它是 symfony \ component \ httpfoundation \ cookie的 一個實例。cookie可以使用withcookie()方法附加到響應中。創建 illuminate \ http \ response 類的響應實例以調用withcookie()方法。由laravel生成的cookie被加密并簽名,并且不能被客戶修改或讀取。
這里有一個解釋示例代碼。
//create a response instance $response = new illuminate\http\response('hello world'); //call the withcookie() method with the response method $response->withcookie(cookie('name', 'value', $minutes)); //return the response return $response;
cookie()方法需要3個參數。第一個參數是cookie的名稱,第二個參數是cookie的值,第三個參數是cookie的持續時間,cookie將自動刪除。
cookie可以通過使用永久方法永久設置,如下面的代碼所示。
$response->withcookie(cookie()->forever('name', 'value'));
檢索cookie
一旦我們設置了cookie,我們就可以通過cookie()方法檢索cookie。這個cookie()方法將只有一個參數,它將是cookie的名字。cookie方法可以通過使用illuminate \ http \ request 實例來調用。
這是一個示例代碼。
//’name’ is the name of the cookie to retrieve the value of $value = $request->cookie('name');
例
觀察以下示例以了解有關cookie的更多信息 -
第1步 - 執行以下命令來創建一個控制器,我們將在其中操作cookie。
php artisan make:controller cookiecontroller --plain
第2步 - 成功執行后,您將收到以下輸出 -
第3步 - 復制下面的代碼
app / http / controllers / cookiecontroller.php 文件。
應用程序/ http /控制器/ cookiecontroller.php
namespace app\http\controllers; use illuminate\http\request; use illuminate\http\response; use app\http\requests; use app\http\controllers\controller; class cookiecontroller extends controller { public function setcookie(request $request){ $minutes = 1; $response = new response('hello world'); $response--->withcookie(cookie('name', 'virat', $minutes)); return $response; } public function getcookie(request $request){ $value = $request->cookie('name'); echo $value; } }
第4步 - 在 app / http / routes.php文件中 添加以下行。
應用程序/ http / routes.php文件
route::get('/cookie/set','cookiecontroller@setcookie'); route::get('/cookie/get','cookiecontroller@getcookie');
第5步 - 訪問以下url以設置cookie。
http://localhost:8000/cookie/set
第6步 - 輸出將如下所示。 截圖中顯示的窗口取自firefox,但取決于您的瀏覽器,也可以通過cookie選項檢查cookie。
第7步 - 訪問以下url以從上述url獲取cookie。
http://localhost:8000/cookie/get
第8步 - 輸出將如下圖所示。