概述

Cookie的添加其实很简单,直接使用Cookie::make(),在使用方法前,需要引入Cookie的门面use Illuminate\Support\Facades\Cookie;,这样就可以完成Cookie的设置了(当然不引入直接 \Cookie 使用也能通过命名空间自动加载)。

不过,设置后我们如何才能取到Cookie值呢?有搜索过相关问题的开发人员肯定知道,网上的答案千篇一律都是:Cookie::get(),有的甚至附上了代码:

网上很多laravel中cookie的使用方法。_Laravel
//先上一个demo写入cookie
$cookie = \Cookie('cookie_name', 'value', 5); $data = ['title'=>'hello world']; return \response() ->view('home.hello', $data) ->cookie($cookie);
网上很多laravel中cookie的使用方法。_Laravel

2、Cookie存储数组:

网上很多laravel中cookie的使用方法。_Laravel
public function index()
{
    //$response = new Response(); $cookie = Cookie::make('test', 'Hello, Laravel', 10);
   return \Response::make('index')->withCookie($cookie); //return $response->make('index')->withCookie($cookie); }
网上很多laravel中cookie的使用方法。_Laravel

要设置一个永不过期的的cookie值,可以使用Cookie::forever()方法:

public function index(Request $request)
{
    $cookie = $request->cookie('test'); dump($cookie); }

如果想获得所有Cookie的值,可以使用不传参数的方法:

XSRF-TOKEN" => "CDSXUUYYHJHGDDFGHJAxPNNsVxLHGTRYUGJ" "laravel_session" => "870a775gthhgef0b9f357edc6r6587878999876556" "test" => "Hello, Laravel" ]

 

当我们需要在客户端使用的时候,获取Cookie的值就不是这样了。首先,我们通过响应withCookie($cookie)传输到客户端的数据并不是一个字符串,而是一个cookie对象:

Hello, Laravel

清除Cookie

清除Cookie的方法比较简单,原理和设置Cookie一样的,只是将过期时间设置成了过去。这里也需要将Cookie加入到HTTP的Response中,使用make()或者forget()方法均可:

或 \setcookie('test', '', -1, '/');
方式二:
$cookie = Cookie::forget('test'); //return Redirect::route('index')->withCookie($cookie);
网上很多laravel中cookie的使用方法。_Laravel