mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
Loader类的import方法调整 Model类自动验证和自动完成改进callback类型
This commit is contained in:
@@ -211,13 +211,13 @@ class Loader
|
||||
} elseif ('@' == $name || MODULE_NAME == $name) {
|
||||
//加载当前模块应用类库
|
||||
$baseUrl = MODULE_PATH;
|
||||
} elseif (in_array($name, ['traits', 'think', 'behavior']) || is_dir(LIB_PATH . $name)) {
|
||||
} elseif (in_array($name, ['traits', 'think', 'behavior'])) {
|
||||
$baseUrl = LIB_PATH;
|
||||
} elseif (is_dir(EXTEND_PATH . $name)) {
|
||||
$baseUrl = EXTEND_PATH;
|
||||
} elseif (APP_NAMESPACE == $name) {
|
||||
// 项目命名空间
|
||||
$baseUrl = APP_PATH;
|
||||
} elseif (is_dir(EXTEND_PATH . $name)) {
|
||||
$baseUrl = EXTEND_PATH;
|
||||
} else {
|
||||
// 加载其他模块应用类库
|
||||
$baseUrl = APP_PATH . $name . DS;
|
||||
|
||||
@@ -1068,12 +1068,19 @@ class Model
|
||||
} else {
|
||||
$rule = isset($val[0]) ? $val[0] : $val;
|
||||
$type = isset($val[1]) ? $val[1] : 'value';
|
||||
if ($rule instanceof \Closure) {
|
||||
$type = 'callback';
|
||||
}
|
||||
switch ($type) {
|
||||
case 'behavior':
|
||||
Hook::exec($rule, '', $data);
|
||||
break;
|
||||
case 'callback':
|
||||
$data[$key] = call_user_func_array($rule, [$value, &$data]);
|
||||
if (is_array($rule) || (is_string($rule) && strpos($rule, '::'))) {
|
||||
$data[$key] = App::invokeMethod($rule, [$value, &$data]);
|
||||
} else {
|
||||
$data[$key] = App::invokeFunction($rule, [$value, &$data]);
|
||||
}
|
||||
break;
|
||||
case 'ignore':
|
||||
if ($rule === $value) {
|
||||
@@ -1103,9 +1110,16 @@ class Model
|
||||
$msg = isset($val[1]) ? $val[1] : 'data validate error : [ ' . $key . ' ]';
|
||||
$type = isset($val[2]) ? $val[2] : 'regex';
|
||||
$options = isset($val[3]) ? $val[3] : [];
|
||||
if ($rule instanceof \Closure) {
|
||||
$type = 'callback';
|
||||
}
|
||||
switch ($type) {
|
||||
case 'callback':
|
||||
$result = call_user_func_array($rule, [$value, &$data]);
|
||||
if (is_array($rule) || (is_string($rule) && strpos($rule, '::'))) {
|
||||
$result = App::invokeMethod($rule, [$value, &$data]);
|
||||
} else {
|
||||
$result = App::invokeFunction($rule, [$value, &$data]);
|
||||
}
|
||||
break;
|
||||
case 'behavior':
|
||||
// 行为验证
|
||||
|
||||
Reference in New Issue
Block a user