Merge pull request #587 from lilwil/master

验证字段比较支持对比其他字段
This commit is contained in:
ThinkPHP
2017-03-21 01:28:48 -05:00
committed by GitHub

View File

@@ -456,11 +456,12 @@ class Validate
* @access protected
* @param mixed $value 字段值
* @param mixed $rule 验证规则
* @param array $data 数据
* @return bool
*/
protected function egt($value, $rule)
protected function egt($value, $rule, $data)
{
return $value >= $rule;
return !is_null($this->getDataValue($data, $rule)) && $value >= $this->getDataValue($data, $rule);
}
/**
@@ -468,11 +469,12 @@ class Validate
* @access protected
* @param mixed $value 字段值
* @param mixed $rule 验证规则
* @param array $data 数据
* @return bool
*/
protected function gt($value, $rule)
protected function gt($value, $rule, $data)
{
return $value > $rule;
return !is_null($this->getDataValue($data, $rule)) && $value > $this->getDataValue($data, $rule);
}
/**
@@ -480,11 +482,12 @@ class Validate
* @access protected
* @param mixed $value 字段值
* @param mixed $rule 验证规则
* @param array $data 数据
* @return bool
*/
protected function elt($value, $rule)
protected function elt($value, $rule, $data)
{
return $value <= $rule;
return !is_null($this->getDataValue($data, $rule)) && $value <= $this->getDataValue($data, $rule);
}
/**
@@ -492,11 +495,12 @@ class Validate
* @access protected
* @param mixed $value 字段值
* @param mixed $rule 验证规则
* @param array $data 数据
* @return bool
*/
protected function lt($value, $rule)
protected function lt($value, $rule, $data)
{
return $value < $rule;
return !is_null($this->getDataValue($data, $rule)) && $value < $this->getDataValue($data, $rule);
}
/**
@@ -1175,13 +1179,13 @@ class Validate
public function getError()
{
return $this->error;
}
}
/**
* 获取数据值
* @access protected
* @param array $data 数据
* @param string $key 数据标识 支持二维
* @param array $data 数据
* @param string $key 数据标识 支持二维
* @return mixed
*/
protected function getDataValue($data, $key)
@@ -1189,11 +1193,11 @@ class Validate
if (strpos($key, '.')) {
// 支持二维数组验证
list($name1, $name2) = explode('.', $key);
$value = isset($data[$name1][$name2]) ? $data[$name1][$name2] : null;
$value = isset($data[$name1][$name2]) ? $data[$name1][$name2] : null;
} else {
$value = isset($data[$key]) ? $data[$key] : null;
$value = is_numeric($key) ? $key : (isset($data[$key]) ? $data[$key] : null);
}
return $value;
return $value;
}
/**