如何将自定义方法添加到 Lumen 的响应 class

How to add custom method to Lumen's response class

我正在使用响应方法 withHeaders():

return response(view('pages.top.index', compact('data')))->withHeaders(['one-param' => 'data', 'second-param' => 'data2' ...);

而且我几乎在每个控制器的操作中都有多个相同的参数,我在 withHeaders() 方法中输入了这些参数。有没有一种方法可以添加我自己的方法并将其链接起来:

return response(view('pages.top.index', compact('data')))->customMethod('data', 'data2', ....);

响应是可宏的,因此您可以将其添加到服务提供商:

\Illuminate\Http\Response::macro('customMethod', function () { 
      //Method body
      return $this; //To chain it
}); 

注意: 我倾向于避免这种情况,因为它让我的 IDE 很难使用类型提示 .

如果问题在于需要一遍又一遍地传递相同的数据,您还可以考虑 sharing data with all views