2016-11-18 54 views
2

我试图在构造函数中设置cookie变量,但是当我在构造中做Cookie::get('cookie_name');时,它设置了一个哈希变量,如下所示。无法在构造函数中获取cookie

eyJpdiI6ImRnRWF3TEa82Wm9cL3lRbng0OW1Wc1FBPT0iLCJ2YWx1ZSI6IlI4TkgwZGd6Mn 

以下是我正在尝试的代码。

class CookieController extends Controller 
{ 
    public $cookie; 
    public function __construct(Request $request){ 
     $this->cookie = Cookie::get('cookie_name'); 
    } 

    public function viewCookie(Request $request){ 
    return $this->cookie; 
    } 

如果我所说的Cookie::get('cookie_name');的viewCookie函数内部则其显示正确的值。 Cookie类是否在构造函数中被禁用?

+0

是在调用构造函数之前启动的会话? – atoms

回答

1

我想这是关于5.3更改using sessions in controller constructor。以下是Taylor Otwell的解释:

在您的构造函数中使用session或auth是非常糟糕的,因为还没有发生请求,而session和auth与INSTENTLY绑定到HTTP请求。您应该以实际的控制器方法接收此请求,您可以多次请求多个不同的请求。通过强制控制器解析构造函数中的会话或认证信息,您现在迫使整个控制器忽略实际的传入请求,这些请求在测试时可能导致严重问题等。