Laravel-cookie

提供:Dev Guides
移動先:案内検索

Laravel-クッキー

Cookieは、Webアプリケーションでユーザーのセッションを処理する際に重要な役割を果たします。 この章では、LaravelベースのWebアプリケーションでのCookieの操作について学習します。

クッキーを作成する

Cookieは、LaravelのグローバルCookieヘルパーによって作成できます。 Symfony \ Component \ HttpFoundation \ Cookie のインスタンスです。 Cookieは、withCookie()メソッドを使用して応答に添付できます。 withCookie()メソッドを呼び出す Illuminate \ Http \ Response クラスの応答インスタンスを作成します。 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の名前、2番目の引数はCookieの値、3番目の引数はCookieの期間です。この期間を過ぎると、Cookieは自動的に削除されます。

Cookieは、以下のコードに示すように、foreverメソッドを使用して永久に設定できます。

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

Cookieを取得する

Cookieを設定したら、cookie()メソッドでCookieを取得できます。 このcookie()メソッドは、Cookieの名前になる引数を1つだけ取ります。 Cookieメソッドは、 Illuminate \ Http \ Request のインスタンスを使用して呼び出すことができます。

これがサンプルコードです。

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

クッキーについての詳細を理解するには、次の例をご覧ください-

  • ステップ1 *-以下のコマンドを実行して、Cookieを操作するコントローラーを作成します。
php artisan make:controller CookieController --plain
  • ステップ2 *-実行が成功すると、次の出力が表示されます-

CookieController

  • ステップ3 *-次のコードをコピーします
*app/Http/Controllers/CookieController.php* ファイル。
*app/Http/Controllers/CookieController.php*
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class CookieController extends Controller {
   public function setCookie(Request $request) {
      $minutes = 1;
      $response = new Response('Hello World');
      $response->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をチェックすることもできます。

Hello World

  • ステップ7 *-次のURLにアクセスして、上記のURLからCookieを取得します。
http://localhost:8000/cookie/get
  • ステップ8 *-出力は次の画像のように表示されます。

Virat