Php 如何在自定义命令中设置cookie并在中间件Laravel中获取它
我正在寻找在控制台自定义命令中设置cookie并在Laravel(5.2版)的中间件中获取cookie的方法。这就是我正在尝试的 在自定义命令中Php 如何在自定义命令中设置cookie并在中间件Laravel中获取它,php,laravel-5,Php,Laravel 5,我正在寻找在控制台自定义命令中设置cookie并在Laravel(5.2版)的中间件中获取cookie的方法。这就是我正在尝试的 在自定义命令中 Cookie::queue('login', 'true', 1); $cookies = array('login' => true); 在中间件中 Cookie::get('login') // unable to get here set cookie 通过自定义命令在内部调用路由 $req = Request::create('/my
Cookie::queue('login', 'true', 1);
$cookies = array('login' => true);
在中间件中
Cookie::get('login') // unable to get here set cookie
通过自定义命令在内部调用路由
$req = Request::create('/my/url', 'POST', $params, $cookies);
$res = app()->handle($req);
$responseBody = $res->getContent();
参考文献
非常感谢您的帮助。我认为您已经创建了一个
中间件
,假设CookieMidtlware
。所以在CookieMiddlware
中有一个句柄方法。尝试dd($request)代码>
例如:
public function handle($request, Closure $next)
{
dd($request);
//return $next($request);
}
注册中间件,然后将其应用于路由。点击该路径,您将看到完整的请求数据。在那里你可以找到饼干。打开它,玩它
如果您已正确设置cookies,则可以从中间件中的请求获取cookies
+cookies: ParameterBag {#45 ▼
#parameters: array:3 [▼
"laravel_session" => "FDyl3cnxEy3VDIiivxLQmDDbyZuJggeU8"
"XSRF-TOKEN" => "7TQrk9QZKrpPPrgoaAXNOIZlThrePlesjQJ"
"etc" => "2zbP5hem9RcvBcQwBz8UewwZxWQxQAcA4"
]
}
您可以像$request->cookie('name')一样访问它类似的,我想你知道其余的。这可能对你有帮助
这样检查
$cookies = array('login' => "akhtar");
$ar = json_encode($cookies);
Cookie::queue('test',$ar,100);
dd(json_decode(Cookie::get('test')));
$cookies=array('testing'=>'sonam');在带有null+cookies的中间件中获取唯一密钥:Symfony\Component\HttpFoundation\ParameterBag{1130}参数:数组:1[“testing”=>null]}公共静态函数create($uri,$method='GET',$parameters=array(),$cookies=array(),$files=array(),$server=array(),$content=null),如上所述,它必须是数组的类型。这就是为什么在JSON编码时出现致命错误的原因。我知道,但当您设置cookie时,请将其设置为JSON\u encode
,并在访问make itJSON\u decode
。无更改,仅获取空值。我这样做只是为了测试,它可以工作。请参阅更新的答案