我试图在加载视图时设置cookie:
$cookie = Cookie::make('mycookie', $myval, 43200);
$view = view('myview')->with($data);
return Response::make($view)->withCookie($cookie);
并在稍后的请求中读取cookie:
if (Cookie::has('mycookie')) {
//do something
}
饼干永远不会定型。。。我哪里错了?
这可以用Laravel:可靠地设置cookie
use Illuminate'Http'Request;
use Illuminate'Contracts'Cookie'Factory;
class MyClass
{
public function handle(Request $request, Factory $cookie)
{
$cookie->queue($cookie->make('myCookie', $request->someVal, 129600));
return redirect('/myPage');
}
}
您可以创建类似cookie的以下
$view = view('myview')->with($data);
$response = new Illuminate'Http'Response($view);
return $response->withCookie(cookie('name', 'value', $minutes));
或者你可以像下面这样对cookie进行排队,它将与下一个请求一起发送
Cookie::queue('name', 'value');
return response('Hello World');
阅读更多
丢失cookie问题的一个可能原因是,如果您有无效的Blade指令,页面将正常显示,但任何cookie集都不会持久化。
我遇到了这个问题,因为我在刀片模板中包含了@script
,而不是@section('script')
我怀疑设置cookie的原因是错误的指令在编译的php代码中导致视图缓存时出错,因此在传输cookie之前处理崩溃。