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

时间:2018-05-15 07:08:29

标签: laravel lumen lumen-5.4

我正在使用回复方法withHeaders()

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

我有几个相同的参数,我几乎在每个Controller的动作中放入withHeaders()方法。有没有办法可以添加我自己的方法并链接它:

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

1 个答案:

答案 0 :(得分:2)

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

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

注意: 我倾向于避免这种情况,因为它给我的IDE带来了类型提示非常困难。

如果问题是需要反复传递相同的数据,您可能还会考虑sharing data with all views