From 0583e4d2b6347868d59bae767c81ecfdae45e03b Mon Sep 17 00:00:00 2001 From: thinkphp Date: Mon, 21 Mar 2016 14:31:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20default=5Fvalidate=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=20=E7=94=A8=E4=BA=8E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E7=9A=84=E9=AA=8C=E8=AF=81=E5=99=A8=E5=90=8D?= =?UTF-8?q?=EF=BC=88=E7=94=A8=E4=BA=8Econtroller=E5=92=8Cmodel=E7=9A=84val?= =?UTF-8?q?idate=E6=96=B9=E6=B3=95=EF=BC=89=20=E6=8E=A7=E5=88=B6=E5=99=A8?= =?UTF-8?q?=E7=B1=BB=E7=9A=84validate=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0c?= =?UTF-8?q?allback=E5=8F=82=E6=95=B0=E5=9C=A8=E9=AA=8C=E8=AF=81=E4=B9=8B?= =?UTF-8?q?=E5=89=8D=E6=89=A7=E8=A1=8C=E6=9F=90=E4=B8=AA=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- convention.php | 2 ++ library/think/Controller.php | 9 ++++++--- library/think/Model.php | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) 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 {