如何在 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.
广告