ResultHelper.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. * @author jianyan74 <751393839@qq.com>
  12. */
  13. class ResultHelper
  14. {
  15. /**
  16. * @param int $code
  17. * @param string $message
  18. * @param array $data
  19. * @return array|mixed
  20. */
  21. public static function json($code = 404, $message = '未知错误', $data = [])
  22. {
  23. if (in_array(Yii::$app->id, AppEnum::api())) {
  24. return static::api($code, $message, $data);
  25. }
  26. return static::baseJson($code, $message, $data);
  27. }
  28. /**
  29. * 返回json数据格式
  30. *
  31. * @param int $code 状态码
  32. * @param string $message 返回的报错信息
  33. * @param array|object $data 返回的数据结构
  34. */
  35. protected static function baseJson($code, $message, $data)
  36. {
  37. Yii::$app->response->format = Response::FORMAT_JSON;
  38. $result = [
  39. 'code' => strval($code),
  40. 'message' => trim($message),
  41. 'data' => $data ? ArrayHelper::toArray($data) : [],
  42. ];
  43. return $result;
  44. }
  45. /**
  46. * 返回 array 数据格式 api 自动转为 json
  47. *
  48. * @param int $code 状态码 注意:要符合http状态码
  49. * @param string $message 返回的报错信息
  50. * @param array|object $data 返回的数据结构
  51. */
  52. protected static function api($code, $message, $data)
  53. {
  54. Yii::$app->response->setStatusCode($code, $message);
  55. Yii::$app->response->data = $data ? ArrayHelper::toArray($data) : [];
  56. return Yii::$app->response->data;
  57. }
  58. }
粤ICP备19079148号