Laravel 5.1 Cookie Issue


Laravel 5.1 Cookie Issue

我试图在加载视图时设置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之前处理崩溃。