Esempio n. 1
0
 /**
  * 实例化验证
  * @access public
  * @param array $rules 验证规则
  * @param array $message 验证提示信息
  * @return Validate
  */
 public static function make($rules = [], $message = [])
 {
     if (is_null(self::$instance)) {
         self::$instance = new self($rules, $message);
     }
     return self::$instance;
 }
Esempio n. 2
0
 /**
  * 获取验证规则的默认提示信息
  * @access protected
  * @param string|array $type  验证规则类型名称或者数组
  * @param string $msg  验证提示信息
  * @return void
  */
 public static function setTypeMsg($type, $msg = null)
 {
     if (is_array($type)) {
         self::$typeMsg = array_merge(self::$typeMsg, $type);
     } else {
         self::$typeMsg[$type] = $msg;
     }
 }
Esempio n. 3
0
 /**
  * 获取数据自动验证或者完成的规则定义
  * @access protected
  * @param mixed $rules  数据规则
  * @param string $config  配置参数
  * @return array
  */
 protected static function getDataRule($rules, $config)
 {
     if ($rules instanceof \think\Model) {
         // 读取模型设置的规则
         $rules = $rules->getProperty($config);
     } elseif (is_string($rules)) {
         // 读取配置文件中的数据类型定义
         $config = Config::get($config);
         if (isset($config['__pattern__'])) {
             // 全局字段规则
             self::$rule = $config['__pattern__'];
         }
         if (strpos($rules, '.')) {
             list($name, $group) = explode('.', $rules);
         } else {
             $name = $rules;
         }
         $rules = isset($config[$name]) ? $config[$name] : [];
         if (isset($config['__all__'])) {
             $rules = array_merge($config['__all__'], $rules);
         }
     }
     if (isset($rules['__option__'])) {
         // 参数设置
         $options = $rules['__option__'];
         unset($rules['__option__']);
     } else {
         $options = [];
     }
     if (isset($group) && isset($options['scene'][$group])) {
         // 如果设置了验证适用场景
         $scene = $options['scene'][$group];
         if (is_string($scene)) {
             $scene = explode(',', $scene);
         }
     } else {
         $scene = [];
     }
     return [$rules, $options, $scene];
 }