概述
Cookie的添加其实很简单,直接使用Cookie::make()
,在使用方法前,需要引入Cookie的门面use Illuminate\Support\Facades\Cookie;
,这样就可以完成Cookie的设置了(当然不引入直接 \Cookie 使用也能通过命名空间自动加载)。
不过,设置后我们如何才能取到Cookie值呢?有搜索过相关问题的开发人员肯定知道,网上的答案千篇一律都是:Cookie::get()
,有的甚至附上了代码:
//先上一个demo写入cookie
$cookie = \Cookie('cookie_name', 'value', 5); $data = ['title'=>'hello world']; return \response() ->view('home.hello', $data) ->cookie($cookie);
2、Cookie存储数组:
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); }
要设置一个永不过期的的cookie值,可以使用Cookie::forever()
方法:
public function index(Request $request) { $cookie = $request->cookie('test'); dump($cookie); }
如果想获得所有Cookie的值,可以使用不传参数的方法:
当我们需要在客户端使用的时候,获取Cookie的值就不是这样了。首先,我们通过响应withCookie($cookie)
传输到客户端的数据并不是一个字符串,而是一个cookie对象:
Hello, Laravel
清除Cookie
清除Cookie的方法比较简单,原理和设置Cookie一样的,只是将过期时间设置成了过去。这里也需要将Cookie加入到HTTP的Response中,使用make()
或者forget()
方法均可: