From 7d0e423ffdcba1da750b680deed8bd5e76612d73 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Sun, 20 Mar 2016 23:18:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3unique=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Validate.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/library/think/Validate.php b/library/think/Validate.php index dacc3071..7a271296 100644 --- a/library/think/Validate.php +++ b/library/think/Validate.php @@ -543,22 +543,23 @@ class Validate * @param mixed $value 字段值 * @param mixed $rule 验证规则 格式:数据表,字段名,排除ID * @param array $data 数据 + * @param string $field 验证字段名 * @return bool */ - protected function unique($value, $rule, $data) + protected function unique($value, $rule, $data, $field) { $rule = explode(',', $rule); $model = Loader::table($rule[0]); - $pk = $model->getPk(); - $field = isset($rule[1]) ? $rule[1] : $key; + $key = isset($rule[3]) ? $rule[3] : $model->getPk(); + $field = isset($rule[1]) ? $rule[1] : $field; if (isset($rule[2])) { $except = $rule[2]; - } elseif (isset($data[$pk])) { - $except = $data[$pk]; + } elseif (isset($data[$key])) { + $except = $data[$key]; } $map[$field] = $value; if (isset($except)) { - $map[$pk] = ['neq', $except]; + $map[$key] = ['neq', $except]; } if ($model->where($map)->find()) { return false;