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

Posted

技术标签:

【中文标题】如何将自定义方法添加到 Lumen 的响应类【英文标题】:How to add custom method to Lumen's response class 【发布时间】:2018-10-24 22:25:20 【问题描述】:

我正在使用响应方法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', ....);

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

对于 Lumen 5.7,电话是\Laravel\Lumen\Http\ResponseFactory::macro

以上是关于如何将自定义方法添加到 Lumen 的响应类的主要内容,如果未能解决你的问题,请参考以下文章

在使用 Hive 进行颤振时,您如何将自定义对象从 POST 响应正文添加到框?

如何将自定义 CSS 添加到清晰的表单中?

身份服务器 - 将自定义参数添加到来自令牌端点的 JSON 响应

如何将自定义视图添加到 iOS VoiceOver 转子?

如何将自定义方法添加到 spring 集成 ftp 网关接口?

如何以编程方式添加尺寸类自定义