Cookie可以通過 Laravel 的全域性 cookie 助手來建立。
它是 Symfony\Component\HttpFoundation\Cookie 的一個範例,cookie可以附加到使用withCookie()方法的響應。
呼叫 withCookie()方法建立 Illuminate\Http\Response 類的一個範例。由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的值的持續時間。
$response->withCookie(cookie()->forever('name', 'value'));
當我們設定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');
php artisan make:controller CookieController
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; } }
app/Http/routes.php
Route::get('/cookie/set','[email protected]'); Route::get('/cookie/get','[email protected]');
http://localhost:8000/cookie/set
第6步 - 將顯示如下所示的輸出。在下面螢幕截圖是火狐瀏覽器,但可根據你的瀏覽器情況可能有所不同,cookie也可以從cookie選項選中。
http://localhost:8000/cookie/get