📜  Laravel-Cookie

📅  最后修改于: 2020-10-23 08:01:55             🧑  作者: Mango


Cookie在处理Web应用程序上的用户会话时起着重要的作用。在本章中,您将学习在基于Laravel的Web应用程序中使用Cookie的知识。

创建一个cookie

Cookie可以由Laravel的全局cookie助手创建。它是Symfony \ Component \ HttpFoundation \ Cookie的实例。可以使用withCookie()方法将Cookie附加到响应中。创建Illuminate \ Http \ Response类的响应实例以调用withCookie()方法。 Laravel生成的Cookie已加密并签名,客户端无法修改或读取。

这是带有解释的示例代码。

//Create a response instance
$response = new Illuminate\Http\Response('Hello World');

//Call the withCookie() method with the response method
$response->withCookie(cookie('name', 'value', $minutes));

//return the response
return $response;

Cookie()方法将使用3个参数。第一个参数是cookie的名称,第二个参数是cookie的值,第三个参数是cookie的持续时间,此后cookie将被自动删除。

可以使用forever方法永久设置Cookie,如下面的代码所示。

$response->withCookie(cookie()->forever('name', 'value'));

检索Cookie

设置cookie后,就可以通过cookie()方法检索cookie。这个cookie()方法将只接受一个参数,即cookie的名称。可以使用Illuminate \ Http \ Request实例调用cookie方法。

这是示例代码。

//’name’ is the name of the cookie to retrieve the value of
$value = $request->cookie('name');

观察以下示例以了解有关Cookie的更多信息-

步骤1-执行以下命令以创建一个控制器,我们将在其中操纵cookie。

php artisan make:controller CookieController --plain

步骤2-成功执行后,您将收到以下输出-

CookieController

步骤3-复制以下代码到

app / Http / Controllers / CookieController.php文件。

app / Http / Controllers / CookieController.php

withCookie(cookie('name', 'virat', $minutes));
      return $response;
   }
   public function getCookie(Request $request) {
      $value = $request->cookie('name');
      echo $value;
   }
}

步骤4-app / Http / routes.php文件中添加以下行。

app / Http / routes.php

Route::get('/cookie/set','CookieController@setCookie');
Route::get('/cookie/get','CookieController@getCookie');

步骤5-访问以下URL以设置cookie。

http://localhost:8000/cookie/set

步骤6-输出将如下所示。屏幕快照中显示的窗口取自firefox,但取决于您的浏览器,也可以从cookie选项中检查cookie。

你好,世界

步骤7-访问以下URL以从上述URL获取cookie。

http://localhost:8000/cookie/get

步骤8-输出将如下图所示。

维拉特