mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 15:12:48 +08:00
改进Validate类的unique规则 支持验证字段和数据表字段 分开
This commit is contained in:
@@ -697,28 +697,28 @@ class Validate
|
|||||||
$rule = explode(',', $rule);
|
$rule = explode(',', $rule);
|
||||||
}
|
}
|
||||||
$db = Db::name($rule[0]);
|
$db = Db::name($rule[0]);
|
||||||
$field = isset($rule[1]) ? $rule[1] : $field;
|
$key = isset($rule[1]) ? $rule[1] : $field;
|
||||||
|
|
||||||
if (strpos($field, '^')) {
|
if (strpos($key, '^')) {
|
||||||
// 支持多个字段验证
|
// 支持多个字段验证
|
||||||
$fields = explode('^', $field);
|
$fields = explode('^', $key);
|
||||||
foreach ($fields as $field) {
|
foreach ($fields as $key) {
|
||||||
$map[$field] = $data[$field];
|
$map[$key] = $data[$key];
|
||||||
}
|
}
|
||||||
} elseif (strpos($field, '=')) {
|
} elseif (strpos($key, '=')) {
|
||||||
parse_str($field, $map);
|
parse_str($key, $map);
|
||||||
} else {
|
} else {
|
||||||
$map[$field] = $data[$field];
|
$map[$key] = $data[$field];
|
||||||
}
|
}
|
||||||
|
|
||||||
$key = strval(isset($rule[3]) ? $rule[3] : $db->getPk());
|
$pk = strval(isset($rule[3]) ? $rule[3] : $db->getPk());
|
||||||
if (isset($rule[2])) {
|
if (isset($rule[2])) {
|
||||||
$map[$key] = ['neq', $rule[2]];
|
$map[$pk] = ['neq', $rule[2]];
|
||||||
} elseif (isset($data[$key])) {
|
} elseif (isset($data[$pk])) {
|
||||||
$map[$key] = ['neq', $data[$key]];
|
$map[$pk] = ['neq', $data[$pk]];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($db->where($map)->field($key)->find()) {
|
if ($db->where($map)->field($pk)->find()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user