クッキーの値を設定して取得したいのですが、うまくいきません:
_ 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);
_
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;
}
ファイルの先頭に追加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');
Cookieの設定方法に関するLaravelのドキュメントに注意深く従ったとしても、Cookieを設定できないので(今日のように)何時間も夢中になるかもしれません!
Cookieが設定されなかった理由をようやく発見しました...コードのテスト中にdump()
関数を使用してデータを表示していました。 dump()
関数は、出力をブラウザに送信します。これには、ヘッダーの送信が必要です。 Cookieもヘッダーと共に送信する必要があるため、dump()
を使用している場合、Cookieは送信されません。
この状況に陥る可能性が非常に高い他の人の助けになることを願っています。
laravelの他のすべてと同様に、Cookieを設定/取得する方法は多数あります。Cookieは発信応答に自動的に追加されます。
$value = 1;
$minutes = 15;
Cookie::queue($online_payment_id, $value, $minutes);
Cookieを取得するには、
request()->cookie($online_payment_id);
すべてのクッキーを表示する
request()->cookie();
特定のアイテムを取得する
request()->cookie('itm_name');
設定項目
request()->cookie('item_name', 'item_value', Min_how_long_it_will_alive);
これを試して:
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']);
}