diff --git a/convention.php b/convention.php index 3854ddfe..d4d94782 100644 --- a/convention.php +++ b/convention.php @@ -52,6 +52,8 @@ return [ 'default_controller' => 'Index', // 默认操作名 'default_action' => 'index', + // 默认验证器 + 'default_validate' => '', // 默认的空控制器名 'empty_controller' => 'Error', // 操作方法后缀 diff --git a/library/think/Controller.php b/library/think/Controller.php index 7b259ce1..9ab859e1 100644 --- a/library/think/Controller.php +++ b/library/think/Controller.php @@ -147,17 +147,20 @@ class Controller * @param array $data 数据 * @param string|array $validate 验证器名或者验证规则数组 * @param array $message 提示信息 + * @param mixed $callback 回调方法(闭包) * @return void */ - public function validate($data, $validate, $message = []) + public function validate($data, $validate, $message = [], $callback = null) { if (is_array($validate)) { - $v = Loader::validate(); + $v = Loader::validate(Config::get('default_validate')); $v->rule($validate); } else { $v = Loader::validate($validate); } - + if (is_callable($callback)) { + call_user_func_array($callback, [$v, &$data]); + } if (is_array($message)) { $v->message($message); } diff --git a/library/think/Model.php b/library/think/Model.php index fcd58cf7..65b03af0 100644 --- a/library/think/Model.php +++ b/library/think/Model.php @@ -989,7 +989,7 @@ class Model if (!empty($this->options['validate'])) { $info = $this->options['validate']; if (is_array($info)) { - $validate = Loader::validate(); + $validate = Loader::validate(Config::get('default_validate')); $validate->rule($info['rule']); $validate->message($info['msg']); } else {