繁体   English   中英

$request-merge() 在父 controller 中消失

[英]$request-merge() disappears in parent controller

我被困在一个奇怪的问题上......

我有一个简单的中间件。

$request->merge([
   'user' => $jwt->toArray(),
   'app_version' => $request->header('app-version')
]);

当我在$next($request); 它有用户 object 和 app_version。 一切顺利:见下图:

在此处输入图像描述

移动到 controller。当在路由中定义的 function 时,并进行dump($request); 它有用户 Object

在此处输入图像描述

InstallController 扩展了 controller.php 扩展了use Illuminate\Routing\Controller as BaseController;

在 controller.php 中,我们有一个结构 function。

在此处输入图像描述

出于某种原因,这里的$request是空的并且丢失了 object。

在此处输入图像描述

为什么会这样? 为什么这在 InstallController 中可用但在父级中不可用?

结果如下。 在Laravel流明中,中间件完成请求后调用了controller个构造函数。 在 Laravel 中,构造函数在中间件之前被调用。

意味着在 Laravel 中的中间件中向请求添加参数不起作用。

感谢您为我指明正确的方向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM