BaseController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace app\controller\admin;
  3. use app\utils\EnumUtil;
  4. use think\Request;
  5. use think\response\Json;
  6. /**
  7. * admin基础控制器
  8. */
  9. class BaseController
  10. {
  11. /**
  12. * 请求实例
  13. * @var Request
  14. */
  15. protected $request;
  16. /**
  17. * 构造函数
  18. */
  19. public function __construct()
  20. {
  21. $this->request = app('request');
  22. }
  23. /**
  24. * 验证请求数据
  25. *
  26. * @param mixed $validate 验证器实例
  27. * @param string $entityClass 实体类名
  28. * @return Json|mixed 验证失败返回Json响应,成功返回实体对象
  29. */
  30. protected function validateRequest($validate, string $entityClass)
  31. {
  32. $validationResult = $validate->validate($this->request->param(), $entityClass);
  33. if ($validationResult['status'] === 'error') {
  34. return app('json')->fail($validationResult['message']);
  35. }
  36. return $validationResult['data'];
  37. }
  38. /**
  39. * 验证枚举数据
  40. *
  41. * @param array $requestData
  42. * @return Json|bool 验证失败返回Json响应,成功返回true
  43. */
  44. protected function validateEnumData(array $requestData)
  45. {
  46. $validationResult = EnumUtil::autoValidate(\app\common\enum\user\ZeroUserEnum::class, $requestData);
  47. if (!$validationResult['valid']) {
  48. return app('json')->fail(implode('; ', $validationResult['errors']));
  49. }
  50. return true;
  51. }
  52. }