做网站怎么写工作日志百度识图扫一扫
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',],
];