From 05b0d43dd81f9c5c3942b3d1841cc51a6eb5a065 Mon Sep 17 00:00:00 2001 From: apple Date: Wed, 29 Apr 2026 17:10:43 +0800 Subject: [PATCH] feat(controller): add app base controller Made-with: Cursor --- .../common/controller/AppBaseController.php | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 pro_v3.5.1/app/common/controller/AppBaseController.php diff --git a/pro_v3.5.1/app/common/controller/AppBaseController.php b/pro_v3.5.1/app/common/controller/AppBaseController.php new file mode 100644 index 00000000..040e1270 --- /dev/null +++ b/pro_v3.5.1/app/common/controller/AppBaseController.php @@ -0,0 +1,78 @@ +app = $app; + $this->request = $app->request; + + $this->initialize(); + } + + /** + * 初始化钩子,子类可覆盖。 + */ + protected function initialize() + { + } + + protected function success($message = 'ok', array $data = []): Response + { + return app('json')->success($message, $data); + } + + protected function fail($message = 'fail', array $data = []): Response + { + return app('json')->fail($message, $data); + } + + /** + * 兼容项目控制器中 `$this->validate($data, ValidateClass::class, 'scene')` 的调用方式。 + * + * @param array $data + * @param string|array $validate + * @param string|array|null $scene + * @return bool + */ + protected function validate(array $data, $validate, $scene = null): bool + { + $validator = validate($validate)->batch($this->batchValidate); + + if (is_string($scene) && $scene !== '') { + $validator->scene($scene); + } elseif (is_array($scene)) { + $validator->message($scene); + } + + return $validator->check($data); + } +}