我是Laravel的初学者。我正试图从控制器这样的中间件传递参数:
if(isset($_COOKIE['name']))
{
return $next($request->attributes->add(['name' => strval($_COOKIE['name'])]));
}
但是,我收到此错误消息:
“类型错误:参数1传递给 Symfony \ Component \ HttpFoundation \ Response :: prepare()必须是 Symfony \ Component \ HttpFoundation \ Request的实例,给定null“
我试图在传递cookie值之前将其转换为字符串,但是它不起作用。如何通过传递cookie作为参数?我不想使用$_COOKIE['name']
获取cookie的值。我的Laravel版本是5.5。谢谢!
答案 0 :(得分:1)
尝试将cookie值与请求输入合并:
return signedXml.CheckSignature(cert);
//^^^^ This will not work.
//CheckSignature(X509Certificate2 certificate, bool verifySignatureOnly)
//needs a boolean flag as well
请记住,这将覆盖任何名为$merged = $request->merge(['name' => $request->cookie('name')]);
return $next($merged);
的输入值,因此请使用唯一键。
但是,这并不是真正必要的,因为请求可以在其整个生命周期内访问cookie:
name