Laravel Cookie

创建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步 - 得到的输出结果如下图所示。



上一篇:Laravel请求

下一篇:Laravel响应

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程