我想在cookie中设置并获取值,但它不起作用:
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);
答案 0 :(得分:5)
设置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;
}
答案 1 :(得分:5)
在文件顶部添加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');
答案 2 :(得分:5)
public function setCookie(Request $request) {
Cookie::queue('name', $request->test, 10);
return view('home');
}
Cookie::queue($cookie_name, $data, $life_time_of_this_cookie);
,只需在要显示数据的位置打印cookie。
{{ Cookie::get('name') }}
答案 3 :(得分:2)
与laravel中的其他所有内容一样,有很多方法可以设置/获取cookie。 cookie将自动添加到传出响应中。
$value = 1;
$minutes = 15;
Cookie::queue($online_payment_id, $value, $minutes);
为了获取cookie,您可以使用
request()->cookie($online_payment_id);
答案 4 :(得分:2)
即使您仔细地了解Laravel文档中有关如何设置cookie的信息,您也可能会疯狂几个小时(就像我今天所做的那样),因为您根本无法设置cookie!
我终于发现了为什么未设置cookie的原因……在测试代码时,我还使用了var token = JToken.Parse(content);
函数来显示数据。 if (token is JArray) {
} else if (token is JValue) {
} else if (token is JObject) {
}
函数将输出发送到浏览器,该浏览器要求发送标头。 Cookies也必须与标题一起发送,因此,如果您使用dump()
,则将永远不会发送Cookie!
我希望这可以帮助其他很有可能遇到这种情况的人。
答案 5 :(得分:0)
有几种方法可以在laravel中设置和获取cookie。
官方文件说Cookies
我通常以这种方式结束
$response = new \Illuminate\Http\Response(view('welcome'));
$response->withCookie(cookie('test_cookie', $request->test_cookie, 45000));
return $response;
您也可以使用CookieJar
答案 6 :(得分:0)
显示所有cookie
request()->cookie();
获取特定商品
request()->cookie('itm_name');
设置项目
request()->cookie('item_name', 'item_value', Min_how_long_it_will_alive);
答案 7 :(得分:0)
laravel 8.x
删除cookie:
<块引用>如果您还没有传出响应的实例,您可以 使用 Cookie 门面的队列方法使 cookie 过期:
use Illuminate\Support\Facades\Cookie;
Cookie::queue(Cookie::forget('name'));
设置:
<块引用>如果您想确保 cookie 与传出 响应但您还没有该响应的实例,您可以 使用 Cookie 外观来“排队”cookie 以附加到 发送时的响应。 queue 方法接受参数 需要创建一个 cookie 实例。这些 cookie 将附加到 发送到浏览器之前的传出响应:
use Illuminate\Support\Facades\Cookie;
Cookie::queue('name', 'value', $minutes);
答案 8 :(得分:0)
只需初始化即可
设置 Cookie
setcookie('name','value', time)
删除 Cookie
Cookie::forget('name')
答案 9 :(得分:-2)
试试这个:
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']);
}