在 Laravel 中设置 cookie 可以使用 Cookie facade 或者 response 对象。以下是设置 cookie 的两种方法:
- 使用
Cookiefacade:
use Illuminate\Support\Facades\Cookie;
// 创建一个 cookie
$cookie = Cookie::make('cookie_name', 'cookie_value', $minutes);
// 发送带有 cookie 的 response
return response('Hello World')->cookie($cookie);- 使用 response 对象的
withCookie方法:
// 直接在 response 中添加 cookie
return response('Hello World')->withCookie('cookie_name', 'cookie_value', $minutes);在这两种方法中,$minutes 是 cookie 的生命周期,以分钟为单位。例如,设置一个 60 分钟后过期的 cookie:
$minutes = 60;
// 使用 Cookie facade
$cookie = Cookie::make('cookie_name', 'cookie_value', $minutes);
return response('Hello World')->cookie($cookie);
// 或者直接使用 response 对象的 withCookie 方法
return response('Hello World')->withCookie('cookie_name', 'cookie_value', $minutes);如果你想要让这个 cookie 在客户端即时过期(删除),可以设置 $minutes 为 0:
$minutes = 0;
return response('Hello World')->withCookie('cookie_name', 'cookie_value', $minutes);如果你想要让这个 cookie 在浏览器关闭时过期,可以设置 $minutes 为 null:
$minutes = null;
return response('Hello World')->withCookie('cookie_name', 'cookie_value', $minutes);你还可以设置其他 cookie 选项,例如路径、域、安全性和 HTTPOnly 标志:
$cookie = Cookie::make('cookie_name', 'cookie_value', $minutes);
// 设置其他选项
$cookie->path('/');
$cookie->domain('example.com');
$cookie->secure(true);
$cookie->httpOnly(true);
return response('Hello World')->cookie($cookie);以上代码展示了如何在 Laravel 应用中设置 cookie,并在 HTTP 响应中发送它。