Yii2 自定义返回格式
1.使用 controller 中的 afterAction 方法,在响应完 action 之后,对数据格式化
use Yii; class MobileController extends yii estController { public function afterAction($action, $result) { $rs = parent::afterAction($action, $result); // 也可以再定义 response // $response = Yii::$app->response; // $response->statusCode = 200; // $response->data = ["message" => "hello world"]; return ["data" => $rs, "error" => "0"]; } }
2.自定义 Error handler
public function init() { parent::init(); $handler = new appcomponentsApiErrorHandler; Yii::$app->set("errorHandler", $handler); $handler->register(); }
3.在 controller 中绑定 response 的 beforeSend 事件
public function init() { parent::init(); Event::on(Response::className(), Response::EVENT_BEFORE_SEND, [$this, "formatDataBeforeSend"]); } public function formatDataBeforeSend($event){ $response = $event->sender; //自已定义失败的返回 if ($response->data !== null && $response->isSuccessful==false) { $response->data = [ "code" => 500, "status" => "FAIL" , "message" => "系统繁忙,请稍后再试", ]; $response->statusCode = 200; } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。