ResultHelper.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace common\helpers;
  3. use Yii;
  4. use yii\web\Response;
  5. use common\enums\AppEnum;
  6. /**
  7. * 格式化数据返回
  8. *
  9. * Class ResultHelper
  10. * @package common\helpers
  11. */
  12. class ResultHelper
  13. {
  14. /**
  15. * @param int $code
  16. * @param string $message
  17. * @param array $data
  18. * @return array|mixed
  19. */
  20. public static function json($code = 404, $message = '未知错误', $data = [])
  21. {
  22. if (in_array(Yii::$app->id, AppEnum::api())) {
  23. return static::api($code, $message, $data);
  24. }
  25. return static::baseJson($code, $message, $data);
  26. }
  27. // public static function json($code = 404, $message = '未知错误', $data = []){
  28. // echo json_encode(['code'=>$code,'message'=>$message,'data'=>$data],JSON_UNESCAPED_UNICODE);
  29. // exit;
  30. // }
  31. /**
  32. * 返回json数据格式
  33. *
  34. * @param int $code 状态码
  35. * @param string $message 返回的报错信息
  36. * @param array|object $data 返回的数据结构
  37. * @return
  38. */
  39. protected static function baseJson($code, $message, $data)
  40. {
  41. Yii::$app->response->format = Response::FORMAT_JSON;
  42. $result = [
  43. 'code' => strval($code),
  44. 'message' => trim($message),
  45. 'data' => $data ? ArrayHelper::toArray($data) : [],
  46. ];
  47. return $result;
  48. }
  49. /**
  50. * 返回 array 数据格式 api 自动转为 json
  51. *
  52. * @param int $code 状态码 注意:要符合http状态码
  53. * @param string $message 返回的报错信息
  54. * @param array|object $data 返回的数据结构
  55. * @return
  56. */
  57. protected static function api($code, $message, $data)
  58. {
  59. Yii::$app->response->setStatusCode($code, $message);
  60. Yii::$app->response->data = $data ? ArrayHelper::toArray($data) : [];
  61. return Yii::$app->response->data;
  62. }
  63. }