Laravel 专题
您的位置:php > Laravel专题 > Laravel Cookie
Laravel Cookie
作者:--    发布时间:2019-11-20

创建cookie

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的值的持续时间。

cookie可以使用 forever方法来来设置永远生效,如下面的代码所示。
$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');

示例

第1步 - 执行下面的命令来创建一个控制器用来操作 cookie。
php artisan make:controller cookiecontroller
第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步 - 访问以下网址设置cookie。

http://localhost:8000/cookie/set

第6步 - 将显示如下所示的输出。在下面屏幕截图是火狐浏览器,但可根据你的浏览器情况可能有所不同,cookie也可以从cookie选项选中。

第7步 - 请访问以下网址,从上面的url得到 cookie。

http://localhost:8000/cookie/get

第8步 - 得到的输出结果如下图所示。



网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册