<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Log; use Laravel\Lumen\Routing\Controller as BaseController; class Controller extends BaseController { //请求的参数 public $requestData; //请求者IP public $clientIp = ''; public function __construct() { header("Content-type: text/html; charset=utf-8"); header('Access-Control-Allow-Origin:*'); $this->requestData = request()->all(); $this->clientIp = request()->ip(); } /** * 检查必要参数 * @param array $paramConf 指定必要参数 * @param str $all 是否全配置 */ public function checkParam($paramConf, $all = '') { if (!empty($all)) { //对待匹配 if (count(array_diff(array_keys($this->requestData), $paramConf)) >= 1) echo json(error('必须按指定参数来传参')); return ; } else { //检查指定参数是否存在 if (count($paramConf) != count(array_intersect($paramConf, array_keys($this->requestData)))) echo json(error('缺少必须参数')); return ; } } /** * 成功格式化返回 * * @param $data * @return \Illuminate\Http\JsonResponse */ protected function success($data = []) { $res = [ 'status' => $data['code'] ?? 200, 'msg' => $data['message'] ?? 'success', 'data' => $data['data'] ?? [] ]; echo response()->json($res)->setEncodingOptions(JSON_UNESCAPED_UNICODE); exit(); } /** * 失败格式化返回 * * @param $message * @param $code * @return \Illuminate\Http\JsonResponse */ protected function fail($message = 'fail', $code = 500) { $res = [ 'status' => $code, 'msg' => $message, 'data' => [] ]; Log::error(json_encode($res, JSON_UNESCAPED_UNICODE)); echo response()->json($res)->setEncodingOptions(JSON_UNESCAPED_UNICODE); exit(); } /** * 调试 */ public function shutdownAction() { $error = error_get_last(); if (!is_null($error)) { // 异常退出 dingdingLog($error); } } }