📅  最后修改于: 2023-12-03 15:32:32.711000             🧑  作者: Mango
在 Laravel 8 中,我们有多种设置 cookie 的方式,其中之一是通过 response()
方法和 withCookie()
函数。
response()
和 withCookie()
以下是如何使用 response()
和 withCookie()
设置 cookie 的示例代码:
use Illuminate\Http\Response;
Route::get('/set-cookie', function () {
$cookie = cookie('name', 'value', 3600);
return response('Hello World')->withCookie($cookie);
});
这将设置一个名为 name
,值为 value
,有效期为 3600 秒(1 小时)的 cookie,并将其与响应一起发送。
这也可以通过将 cookie 添加到已有的响应中来完成,如下所示:
use Illuminate\Http\Response;
Route::get('/set-cookie', function (Response $response) {
$cookie = cookie('name', 'value', 3600);
return $response->withCookie($cookie);
});
Laravel 还提供了 withCookies()
函数来修改一个或多个 cookie 的值。以下是如何使用它的示例:
use Illuminate\Http\Response;
Route::get('/modify-cookie', function (Response $response) {
$cookies = cookie('name1', 'value1', 3600);
$cookies .= cookie('name2', 'value2', 3600);
return $response->withCookies([$cookies]);
});
这将修改 name1
和 name2
的值,并将其重新设置为有效期为 3600 秒的 cookie。
要删除一个 cookie,您可以使用带有 forget()
函数的 cookie()
辅助函数。以下是如何删除 cookie 的示例:
use Illuminate\Http\Response;
Route::get('/delete-cookie', function (Response $response) {
return $response->withCookie(cookie('name', '', -1));
});
这会将有效期设置为前一天,从而使浏览器立即删除 cookie。
Laravel 8 中有多种设置 cookie 的方式,我们可以使用 response()
方法和 withCookie()
函数来设置、修改和删除 cookie。您还可以使用 cookie()
和 withCookies()
来执行类似的操作。