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','cookiecontroller@setcookie'); route::get('/cookie/get','cookiecontroller@getcookie');
http://localhost:8000/cookie/set
第6步 - 将显示如下所示的输出。在下面屏幕截图是火狐浏览器,但可根据你的浏览器情况可能有所不同,cookie也可以从cookie选项选中。
http://localhost:8000/cookie/get