cookie的使用必须结合response一起使用
1 设置cookie
一般情况下我们不会无故生成cookie,通常是接收一个请求后生成cookie(比如用户登录后生成cookie),这个cookie必须和响应一起发给客户端
$value = response($data)->cookie('key', 'value', 6000);
$value = response($data)->withCookie('key', 'value', 6000);
跳转,重定向时也可以携带cookie
return redirect('/')->cookie('key', 'value', 6000);
return redirect('/')->withCookie('key', 'value', 6000);
PS:使用下面也可以(貌似多此一举)
$cookie = Cookie::make('key', 'value', 6000);
return response()->cookie($cookie);
设置永久cookie
$cookie = Cookie::forever('key', 'value');
return response()->cookie($cookie);
2 获取cookie
通过调用 Illuminate\Http\Request 实例对象的 cookie 方法获取
$value = $request->cookie('key'); // 注意依赖注入获取$request
$value = request()->cookie('key');
通过 Cookie Facade 方式
use Illuminate\Support\Facades\Cookie;
// ...
$value = Cookie::get('key');
3 删除cookie
use Illuminate\Support\Facades\Cookie;
// ...
$cookie = Cookie::forget('key'); // 只有这一句不行
return response()->cookie($cookie); // 把cookie添加到响应