📜  laravel 8 中的 setcookie - PHP (1)

📅  最后修改于: 2023-12-03 15:32:32.711000             🧑  作者: Mango

Laravel 8 中的 setcookie - PHP

在 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);
});
修改 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]);
});

这将修改 name1name2 的值,并将其重新设置为有效期为 3600 秒的 cookie。

删除 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() 来执行类似的操作。