BaseController.php 1.4 KB

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