This commit is contained in:
邹景立 2025-03-21 18:13:25 +08:00
parent 0c29dc2d42
commit 9e9efb2215

View File

@ -50,21 +50,21 @@ class ValidateHelper extends Helper
$input = $this->app->request->$type(); $input = $this->app->request->$type();
} }
[$data, $rule, $info] = [[], [], []]; [$data, $rule, $info] = [[], [], []];
foreach ($rules as $name => $message) { foreach ($rules as $key => $value) {
if (is_numeric($name)) { if (is_numeric($key)) {
[$name, $alias] = explode('#', $message . '#'); [$key, $alias] = explode('#', "{$value}#");
$data[$name] = $input[$alias ?: $name] ?? null; $data[$key] = $input[$alias ?: $key] ?? null;
} elseif (strpos($name, '.') === false) { } elseif (strpos($key, '.') === false) {
$data[$name] = $message; $data[$key] = $value;
} elseif (preg_match('|^(.*?)\.(.*?)#(.*?)#?$|', $name . '#', $matches)) { } elseif (preg_match('|^(.*?)\.(.*?)#(.*?)#?$|', "{$key}#", $matches)) {
[, $_key, $_rule, $alias] = $matches; [, $_key, $_rule, $alias] = $matches;
if (in_array($_rule, ['value', 'default'])) { if (in_array($_rule, ['value', 'default'])) {
if ($_rule === 'value') $data[$_key] = $message; if ($_rule === 'value') $data[$_key] = $value;
elseif ($_rule === 'default') $data[$_key] = $input[$alias ?: $_key] ?? $message; if ($_rule === 'default') $data[$_key] = $input[$alias ?: $_key] ?? $value;
} else { } else {
$info[explode(':', $_key . '.' . $_rule)[0]] = $message; $info[explode(':', "{$_key}.{$_rule}")[0]] = $value;
$data[$_key] = $data[$_key] ?? ($input[$alias ?: $_key] ?? null); $data[$_key] = $data[$_key] ?? ($input[$alias ?: $_key] ?? null);
$rule[$_key] = isset($rule[$_key]) ? $rule[$_key] . '|' . $_rule : $_rule; $rule[$_key] = isset($rule[$_key]) ? "{$rule[$_key]}|{$_rule}" : $_rule;
} }
} }
} }