改进Validate

This commit is contained in:
thinkphp
2016-12-19 09:00:05 +08:00
parent 33b9ba4a9c
commit c197b1f040

View File

@@ -317,7 +317,12 @@ class Validate
$value = $this->getDataValue($data, $key); $value = $this->getDataValue($data, $key);
// 字段验证 // 字段验证
if ($rule instanceof \Closure) {
// 匿名函数验证 支持传入当前字段和所有字段两个数据
$result = call_user_func_array($rule, [$value, $data]);
} else {
$result = $this->checkItem($key, $value, $rule, $data, $title, $msg); $result = $this->checkItem($key, $value, $rule, $data, $title, $msg);
}
if (true !== $result) { if (true !== $result) {
// 没有返回true 则表示验证失败 // 没有返回true 则表示验证失败
@@ -350,10 +355,6 @@ class Validate
*/ */
protected function checkItem($field, $value, $rules, $data, $title = '', $msg = []) protected function checkItem($field, $value, $rules, $data, $title = '', $msg = [])
{ {
if ($rules instanceof \Closure) {
// 匿名函数验证 支持传入当前字段和所有字段两个数据
$result = call_user_func_array($rules, [$value, $data]);
} else {
// 支持多规则验证 require|in:a,b,c|... 或者 ['require','in'=>'a,b,c',...] // 支持多规则验证 require|in:a,b,c|... 或者 ['require','in'=>'a,b,c',...]
if (is_string($rules)) { if (is_string($rules)) {
$rules = explode('|', $rules); $rules = explode('|', $rules);
@@ -416,7 +417,6 @@ class Validate
} }
$i++; $i++;
} }
}
return $result; return $result;
} }