如何在 Laravel 中检查 Cookie 是否已设置?


当您访问网页时,它通常会生成包含少量数据(例如用户名和密码)的文本文件,并将它们存储在用户的浏览器上。这些被称为 Cookie,它们用于识别用户系统,并且可以被 Web 服务器或客户端计算机(存储 Cookie 的计算机)访问。

  • 存储在 Cookie 中的信息特定于 Web 服务器。

  • 连接到服务器后,会创建一个带有唯一 ID 的 Cookie 并将其存储在您的计算机上。

  • 一旦 Cookie 在客户端交换/存储,如果您再次连接到服务器,它将根据存储的 Cookie 识别您的系统。

  • 这有助于服务器为特定用户提供个性化的页面。

示例 1

以下示例创建了一个 Cookie 并验证它是否已设置。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller { public function index(Request $request) { Cookie::queue('msg', 'cookie testing', 10); echo $value = $request->cookie('msg'); } }

输出

以上代码的输出为:

示例 2

另一种测试 Cookie 是否已设置的方法可以在以下示例中看到:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller { public function index(Request $request) { Cookie::queue('msg', 'cookie testing', 10); return view('test'); } }

test.blade.php

<!DOCTYPE html> <html> <head> <style> body { font-family: 'Nunito', sans-serif; } </style> <head> <body class="antialiased"> <div> {{ Cookie::get('msg') }} </div> </body> </html>

输出

以上代码的输出为:

示例 3

使用 hasCookie() 方法测试给定的 Cookie 是否已设置。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller{ public function index(Request $request) { if($request->hasCookie('msg')) { echo "Cookie present"; } else { echo "Cookie msg is not set"; } } }

输出

Cookie present

示例 4

另一个测试 Cookie 设置的示例。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller{ public function index(Request $request) { return view('test'); } }

Test.blade.php

<!DOCTYPE html> <html> <head> <style> body { font-family: 'Nunito', sans-serif; } </style> </head> <body class="antialiased"> <div> @if (Cookie::get('msg') !== false) <p>cookie is present.</p> @else <p>cookie is not set.</p> @endif </div> </body> </html>

输出

以上代码的输出为:

cookie is present.

更新于: 2022年8月30日

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告