mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-06 23:02:48 +08:00
增加filter_var方式自动验证
This commit is contained in:
@@ -15,6 +15,8 @@ define('EXISTS_VALIDATE', 0);
|
|||||||
define('MUST_VALIDATE', 1);
|
define('MUST_VALIDATE', 1);
|
||||||
define('VALUE_VALIDATE', 2);
|
define('VALUE_VALIDATE', 2);
|
||||||
|
|
||||||
|
use think\Lang;
|
||||||
|
|
||||||
trait Auto
|
trait Auto
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -38,7 +40,7 @@ trait Auto
|
|||||||
}
|
}
|
||||||
// 验证数据
|
// 验证数据
|
||||||
if (empty($data) || !is_array($data)) {
|
if (empty($data) || !is_array($data)) {
|
||||||
$this->error = \think\Lang::get('_DATA_TYPE_INVALID_');
|
$this->error = Lang::get('_DATA_TYPE_INVALID_');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,7 +211,7 @@ trait Auto
|
|||||||
if (empty($val[5]) || self::MODEL_BOTH == $val[5] || $val[5] == $type) {
|
if (empty($val[5]) || self::MODEL_BOTH == $val[5] || $val[5] == $type) {
|
||||||
if (0 == strpos($val[2], '{%') && strpos($val[2], '}')) {
|
if (0 == strpos($val[2], '{%') && strpos($val[2], '}')) {
|
||||||
// 支持提示信息的多语言 使用 {%语言定义} 方式
|
// 支持提示信息的多语言 使用 {%语言定义} 方式
|
||||||
$val[2] = \think\Lang::get(substr($val[2], 2, -1));
|
$val[2] = Lang::get(substr($val[2], 2, -1));
|
||||||
}
|
}
|
||||||
$val[3] = isset($val[3]) ? $val[3] : EXISTS_VALIDATE;
|
$val[3] = isset($val[3]) ? $val[3] : EXISTS_VALIDATE;
|
||||||
$val[4] = isset($val[4]) ? $val[4] : 'regex';
|
$val[4] = isset($val[4]) ? $val[4] : 'regex';
|
||||||
@@ -351,7 +353,7 @@ trait Auto
|
|||||||
list($min, $max) = explode(',', $rule);
|
list($min, $max) = explode(',', $rule);
|
||||||
return $length >= $min && $length <= $max;
|
return $length >= $min && $length <= $max;
|
||||||
} else {
|
} else {
|
||||||
// 指定长度
|
// 指定长度
|
||||||
return $length == $rule;
|
return $length == $rule;
|
||||||
}
|
}
|
||||||
case 'expire':
|
case 'expire':
|
||||||
@@ -367,6 +369,9 @@ trait Auto
|
|||||||
return in_array(get_client_ip(), explode(',', $rule));
|
return in_array(get_client_ip(), explode(',', $rule));
|
||||||
case 'ip_deny': // IP 操作禁止验证
|
case 'ip_deny': // IP 操作禁止验证
|
||||||
return !in_array(get_client_ip(), explode(',', $rule));
|
return !in_array(get_client_ip(), explode(',', $rule));
|
||||||
|
case 'filter': // 使用filter_var验证
|
||||||
|
$result = filter_var($value, is_int($rule) ? $rule : filter_id($rule));
|
||||||
|
return false === $result ? false : true;
|
||||||
case 'regex':
|
case 'regex':
|
||||||
default: // 默认使用正则验证 可以使用验证类中定义的验证名称
|
default: // 默认使用正则验证 可以使用验证类中定义的验证名称
|
||||||
// 检查附加规则
|
// 检查附加规则
|
||||||
|
|||||||
Reference in New Issue
Block a user