
- Laravel 教程
- Laravel - 首頁
- Laravel - 概述
- Laravel - 安裝
- Laravel - 應用結構
- Laravel - 配置
- Laravel - 路由
- Laravel - 中介軟體
- Laravel - 名稱空間
- Laravel - 控制器
- Laravel - 請求
- Laravel - Cookie
- Laravel - 響應
- Laravel - 檢視
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 資料庫操作
- Laravel - 錯誤與日誌
- Laravel - 表單
- Laravel - 國際化
- Laravel - Session
- Laravel - 驗證
- Laravel - 檔案上傳
- Laravel - 傳送郵件
- Laravel - Ajax
- Laravel - 錯誤處理
- Laravel - 事件處理
- Laravel - Facades
- Laravel - Contracts
- Laravel - CSRF 保護
- Laravel - 身份驗證
- Laravel - 授權
- Laravel - Artisan 命令列
- Laravel - 加密
- Laravel - 雜湊
- 理解發布流程
- Laravel - 客人使用者許可權
- Laravel - Artisan 命令
- Laravel - 分頁自定義
- Laravel - Dump Server
- Laravel - Action URL
- Laravel 有用資源
- Laravel - 快速指南
- Laravel - 有用資源
- Laravel - 討論
Laravel - Cookie
Cookie 在處理 Web 應用的使用者會話中扮演著重要的角色。本章將學習如何在基於 Laravel 的 Web 應用中使用 Cookie。
建立 Cookie
Cookie 可以透過 Laravel 的全域性 cookie 輔助函式建立。它是一個 Symfony\Component\HttpFoundation\Cookie 的例項。可以使用 withCookie() 方法將 Cookie 附加到響應中。建立一個 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 將自動刪除。
可以使用 forever 方法將 Cookie 設定為永久有效,如下面的程式碼所示。
$response->withCookie(cookie()->forever('name', 'value'));
檢索 Cookie
設定 Cookie 後,可以使用 cookie() 方法檢索 Cookie。此 cookie() 方法只接受一個引數,即 Cookie 的名稱。可以使用 Illuminate\Http\Request 的例項呼叫 cookie() 方法。
以下是一個示例程式碼。
//’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 檔案。
app/Http/Controllers/CookieController.php
<?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 檔案中新增以下行。
app/Http/routes.php
Route::get('/cookie/set','CookieController@setCookie'); Route::get('/cookie/get','CookieController@getCookie');
步驟 5 - 訪問以下 URL 來設定 Cookie。
https://:8000/cookie/set
步驟 6 - 輸出將如下所示。截圖中的視窗來自 Firefox,但根據您的瀏覽器,也可以從 Cookie 選項中檢查 Cookie。

步驟 7 - 訪問以下 URL 從上面的 URL 獲取 Cookie。
https://:8000/cookie/get
步驟 8 - 輸出將如下圖所示。
