helper.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006~2023 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. //------------------------
  13. // ThinkPHP 助手函数
  14. //-------------------------
  15. use think\Validate;
  16. use think\validate\ValidateRuleSet;
  17. if (!function_exists('validate')) {
  18. /**
  19. * 生成验证对象
  20. * @param string|array $validate 验证器类名或者验证规则数组
  21. * @param array $message 错误提示信息
  22. * @param bool $batch 是否批量验证
  23. * @param bool $failException 是否抛出异常
  24. * @return Validate
  25. */
  26. function validate($validate = '', array $message = [], bool $batch = false, bool $failException = true): Validate
  27. {
  28. if (is_array($validate) || '' === $validate) {
  29. $v = new Validate();
  30. if (is_array($validate)) {
  31. $v->rule($validate);
  32. }
  33. } else {
  34. if (str_contains($validate, '.')) {
  35. // 支持场景
  36. [$validate, $scene] = explode('.', $validate);
  37. }
  38. if (class_exists($validate)) {
  39. $v = new $validate();
  40. if (!empty($scene)) {
  41. $v->scene($scene);
  42. }
  43. } else {
  44. $v = new Validate();
  45. }
  46. }
  47. return $v->message($message)->batch($batch)->failException($failException);
  48. }
  49. }
  50. if (!function_exists('rules')) {
  51. /**
  52. * 定义ValidateRuleSet规则集合
  53. * @param array $rules 验证因子集
  54. * @return ValidateRuleSet
  55. */
  56. function rules(array $rules): ValidateRuleSet
  57. {
  58. return ValidateRuleSet::rules($rules);
  59. }
  60. }