From bc5e9897c5177edc232cd2db9f09a3f395805ac5 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Sun, 20 Mar 2016 11:27:11 +0800 Subject: [PATCH] =?UTF-8?q?validate=E7=B1=BB=E7=9A=84extend=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E6=94=AF=E6=8C=81=E6=89=B9=E9=87=8F=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=20=E4=BF=AE=E6=AD=A3=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Validate.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/library/think/Validate.php b/library/think/Validate.php index a88b18ae..3d11d851 100644 --- a/library/think/Validate.php +++ b/library/think/Validate.php @@ -111,9 +111,13 @@ class Validate * @param mixed $callback callback方法(或闭包) * @return void */ - public function extend($type, $callback) + public function extend($type, $callback = null) { - $this->type[$type] = $callback; + if (is_array($type)) { + $this->type = array_merge($this->type, $type); + } else { + $this->type[$type] = $callback; + } return $this; } @@ -524,10 +528,13 @@ class Validate */ public function filter($value, $rule) { - if (is_string($rule)) { - $rule = explode(',', $rule); + if (is_int($rule)) { + $param = null; + } elseif (is_string($rule) && strpos($rule, ',')) { + list($rule, $param) = explode(',', $rule); + } elseif (is_array($rule)) { + $param = isset($rule[1]) ? $rule[1] : null; } - list($rule, $param) = $rule; return false !== filter_var($value, is_int($rule) ? $rule : filter_id($rule), $param); }