本文主要是介绍格式化dingo返回内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
dingo api返回的内容中添加code
和 message
,保持与异常返回的内容格式相一致。
失败会存在code
和 message
,我们只需要关注成功的情况
非分页返回,可以创建一个父类controller,通过调用sucess方法来返回
class Controller extends BaseController
{use AuthorizesRequests, DispatchesJobs, ValidatesRequests, Helpers;public function success($data){return $this->response()->array(['code' => 0,'message' => 'Success','data' => $data]);}
}
分页返回,使用Morphing 和 Morphed 事件
use Dingo\Api\Event\ResponseWasMorphed;class AddCustomDataToResponse
{public function handle(ResponseWasMorphed $event){// 检查是否为分页响应或其他情况下需要添加额外数据if (isset($event->content['meta']['pagination'])) {// 直接在响应内容中添加 `code` 和 `message`$event->content['code'] = 200; // 示例代码$event->content['message'] = 'Success'; // 示例消息// 确保修改后的内容被正确设置回响应$event->response->setContent(json_encode($event->content));}}
}
在 EventServiceProvider
中注册这个监听器:
protected $listen = ['Dingo\Api\Event\ResponseWasMorphed' => ['App\Listeners\AddCustomDataToResponse',],
];
这篇关于格式化dingo返回内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!