PHP - Laravel 设置 cookie
在 Laravel 中设置 cookie 可以使用 Cookie
facade 或者 response
对象。以下是设置 cookie 的两种方法:
- 使用
Cookie
facade:
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 响应中发送它。
评论已关闭