From efabc441646ddeeaea6cb849b3b7a7c03078192a Mon Sep 17 00:00:00 2001 From: thinkphp Date: Tue, 9 Feb 2016 17:38:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E8=87=AA=E5=8A=A8=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E5=92=8C=E8=87=AA=E5=8A=A8=E5=A1=AB=E5=85=85=20callba?= =?UTF-8?q?ck=E6=96=B9=E5=BC=8F=E6=94=AF=E6=8C=81=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E4=B8=AA=E5=8F=82=E6=95=B0data=EF=BC=88?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E4=BC=A0=E5=80=BC=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Model.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/library/think/Model.php b/library/think/Model.php index 8df3b68a..60f1d1e9 100644 --- a/library/think/Model.php +++ b/library/think/Model.php @@ -1014,7 +1014,7 @@ class Model Hook::exec($rule, '', $data); break; case 'callback': - $data[$key] = call_user_func_array($rule, [$value]); + $data[$key] = call_user_func_array($rule, [$value, &$data]); break; case 'ignore': if ($rule === $value) { @@ -1046,7 +1046,7 @@ class Model $options = isset($val[3]) ? $val[3] : []; switch ($type) { case 'callback': - $result = call_user_func_array($rule, [$value]); + $result = call_user_func_array($rule, [$value, &$data]); break; case 'behavior': $result = Hook::exec($rule, '', $data); @@ -1072,9 +1072,7 @@ class Model break; case 'regex': default: - if (isset($options['rule'])) { - $rule = $options['rule']; - } elseif (isset($this->rule[$rule])) { + if (isset($this->rule[$rule])) { $rule = $this->rule[$rule]; } $result = 1 === preg_match('/^' . $rule . '$/', (string) $value);