Controller.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Http\Controllers\V1;
  3. use Dingo\Api\Routing\Helpers;
  4. use Illuminate\Foundation\Bus\DispatchesJobs;
  5. use Illuminate\Routing\Controller as BaseController;
  6. use Illuminate\Foundation\Validation\ValidatesRequests;
  7. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  8. use App\Services\Base\ErrorCode;
  9. use Request, Auth, Log;
  10. class Controller extends BaseController
  11. {
  12. use AuthorizesRequests, DispatchesJobs, ValidatesRequests, Helpers;
  13. //验证器错误信息返回
  14. public function validatorError($arr, $code = 0, $msg = '')
  15. {
  16. //写入日志
  17. Log::info($arr);
  18. //获取返回信息
  19. foreach ($arr as $val){
  20. if($val&&$msg==''){
  21. $msg = $val;
  22. }
  23. }
  24. //组装状态码和返回信息
  25. $res = [
  26. 'code' => $code,
  27. 'msg' => $msg ?? '',
  28. 'data' => null
  29. ];
  30. //json返回数据和状态码
  31. return response()->json($res);
  32. }
  33. //通用输出方法
  34. public function output($data=[], $code = 0, $msg = '')
  35. {
  36. $ret = $this->makeApiData($data, $code, $msg);
  37. return response()->json($ret);
  38. }
  39. //正确返回
  40. public function success($data=[], $code = 0, $msg = '')
  41. {
  42. //是否有成功时返回的信息
  43. if (!$msg) $msg = trans('api.SUCCESS');
  44. //组装状态码返回信息等数据
  45. $ret = $this->makeApiData($data, $code, $msg);
  46. //返回json数据
  47. return response()->json($ret);
  48. }
  49. //错误返回
  50. public function error($msg = '', $code = 1, $data = null)
  51. {
  52. $ret = $this->makeApiData($data, $code, $msg);
  53. return response()->json($ret);
  54. }
  55. //生成返回数据
  56. private function makeApiData($data, $code = 0, $message = '')
  57. {
  58. //判断状态码是否正常和返回信息是否为空
  59. if ($code !== 0 && empty($message)) {
  60. //输出错误码对应的错误信息
  61. $message = ErrorCode::message($code);
  62. } else if ($code == 0 && empty($message)) {
  63. //输出成功信息
  64. $message = 'success';
  65. }
  66. //组装数据
  67. $ret = [
  68. 'code' => $code,
  69. 'msg' => $message,
  70. 'data' => $data
  71. ];
  72. //返回数据
  73. return $ret;
  74. }
  75. }