web-dev-qa-db-ja.com

Cookieを設定して取得する方法laravel

クッキーの値を設定して取得したいのですが、うまくいきません:

_    Cookie::queue('online_payment_id', "1", 15);

    $value = Cookie::get('online_payment_id');
    dd($value);
_

dd()nullを返します。


私は以下の方法を使用しましたが、このメッセージが表示されました:

_Method cookie does not exist.

    request()->cookie('online_payment_id');

    $value = response()->cookie('online_payment_id', "1", 15);
    dd($value);
_
6
S.M_Emamian

Cookieの設定

 public function setCookie(Request $request){
      $minutes = 60;
      $response = new Response('Set Cookie');
      $response->withCookie(cookie('name', 'MyValue', $minutes));
      return $response;
   }

Cookieを取得

   public function getCookie(Request $request){
      $value = $request->cookie('name');
      echo $value;
   }
6
Hariharan

ファイルの先頭に追加use Symfony\Component\HttpFoundation\Cookie;または単にuse Cookie;を追加します

Cookieインスタンスを生成するには

    $cookie = cookie('name', 'value', $minutes);
    return response('Hello World')->cookie($cookie);

リクエストからCookieを取得するには、メソッドでRequest $requestを使用していることを確認してください。

    $value = $request->cookie('name');
8
Prashant Barve

Cookieの設定方法に関するLaravelのドキュメントに注意深く従ったとしても、Cookieを設定できないので(今日のように)何時間も夢中になるかもしれません!

Cookieが設定されなかった理由をようやく発見しました...コードのテスト中にdump()関数を使用してデータを表示していました。 dump()関数は、出力をブラウザに送信します。これには、ヘッダーの送信が必要です。 Cookieもヘッダーと共に送信する必要があるため、dump()を使用している場合、Cookieは送信されません。

この状況に陥る可能性が非常に高い他の人の助けになることを願っています。

4
Erin Geyer

laravelの他のすべてと同様に、Cookieを設定/取得する方法は多数あります。Cookieは発信応答に自動的に追加されます。

    $value = 1;
    $minutes = 15;
    Cookie::queue($online_payment_id, $value, $minutes);

Cookieを取得するには、

    request()->cookie($online_payment_id);
3
gaurav

すべてのクッキーを表示する

request()->cookie();

特定のアイテムを取得する

request()->cookie('itm_name');

設定項目

request()->cookie('item_name', 'item_value', Min_how_long_it_will_alive);
1
sh6210

LaravelでCookieを設定および取得するには、いくつかの方法があります。

公式ドキュメントには Cookies と書かれています

私は通常このようになりました

$response = new \Illuminate\Http\Response(view('welcome'));
$response->withCookie(cookie('test_cookie', $request->test_cookie, 45000));
return $response;

CookieJarを使用することもできます

参照 CookieJar

1
laktherock

これを試して:

public function setCookie(Request $request){

 $cookie_name = "user";
 $cookie_value = "value";
 setcookie($cookie_name,$cookie_value, time() + (86400 * 30), "/"); //name,value,time,url

 dd($_COOKIE['user']);

}
0
saroj