Site.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\validate\site;
  12. use think\Validate;
  13. use app\model\site\Site as SiteModel;
  14. /**
  15. * 站点验证
  16. * Class Site
  17. * @package app\validate\site
  18. */
  19. class Site extends Validate
  20. {
  21. protected $rule = [
  22. 'site_name' => 'require|max:20',
  23. 'group_id' => 'require|number',
  24. 'expire_time' => 'date',
  25. 'site_domain' => 'checkSiteDomain'
  26. ];
  27. protected $message = [
  28. 'site_name.require' => 'validate_site.site_name_require',
  29. 'site_name.max' => 'validate_site.site_name_max',
  30. 'group_id.require' => 'validate_site.group_id_require',
  31. 'group_id.number' => 'validate_site.group_id_number',
  32. 'expire_time.number' => 'validate_site.expire_time_number',
  33. ];
  34. protected $scene = [
  35. 'add' => ['site_name', 'group_id', 'expire_time', 'site_domain'],
  36. "edit" => ['site_name', 'site_domain']
  37. ];
  38. protected function checkSiteDomain($value, $rule, $data = [])
  39. {
  40. if (empty($value)) return true;
  41. $where = [
  42. ['site_domain', '=', $value]
  43. ];
  44. if (isset($data['site_id'])) $where[] = ['site_id', '<>', $data['site_id']];
  45. return (new SiteModel())->where($where)->count() ? get_lang("validate_site.site_domain_cannot_repeated") : true;
  46. }
  47. }