This commit is contained in:
2023-12-18 02:25:34 +08:00
parent cf3aad6001
commit f17381c4de
7 changed files with 29 additions and 17 deletions
+6 -2
View File
@@ -15,8 +15,12 @@ class ArrayProxy extends TypesProxy
*/
public function dispatch(object $form, string $field, mixed $value): bool
{
if (is_null($value) && !$this->allowsNull) {
return false;
if (is_null($value)) {
if (!$this->allowsNull) {
return false;
}
$form->{$field} = [];
return true;
}
return $value == ($form->{$field} = $value);
}
+5 -1
View File
@@ -15,7 +15,11 @@ class BoolProxy extends TypesProxy
*/
public function dispatch(object $form, string $field, mixed $value): bool
{
if (is_null($value) && !$this->allowsNull) {
if (is_null($value)) {
if (!$this->allowsNull) {
return false;
}
$form->{$field} = false;
return false;
}
// TODO: Implement dispatch() method.
+5 -1
View File
@@ -14,7 +14,11 @@ class FloatProxy extends TypesProxy
*/
public function dispatch(object $form, string $field, mixed $value): bool
{
if (is_null($value) && !$this->allowsNull) {
if (is_null($value)) {
if (!$this->allowsNull) {
return false;
}
$form->{$field} = 0;
return false;
}
return $value == ($form->{$field} = (float)$value);
+5 -1
View File
@@ -14,7 +14,11 @@ class IntProxy extends TypesProxy
*/
public function dispatch(object $form, string $field, mixed $value): bool
{
if (is_null($value) && !$this->allowsNull) {
if (is_null($value)) {
if (!$this->allowsNull) {
return false;
}
$form->{$field} = 0;
return false;
}
return $value == ($form->{$field} = (int)$value);
-3
View File
@@ -19,9 +19,6 @@ class MixedProxy extends TypesProxy
public function dispatch(object $form, string $field, mixed $value): bool
{
try {
if (is_null($value) && !$this->allowsNull) {
return false;
}
return $value == ($form->{$field} = $value);
} catch (\Throwable $throwable) {
return false;
+5 -1
View File
@@ -15,7 +15,11 @@ class StringProxy extends TypesProxy
*/
public function dispatch(object $form, string $field, mixed $value): bool
{
if (is_null($value) && !$this->allowsNull) {
if (is_null($value)) {
if (!$this->allowsNull) {
return false;
}
$form->{$field} = '';
return false;
}
return $value == ($form->{$field} = (string)$value);
+3 -8
View File
@@ -120,18 +120,13 @@ class Validator
foreach ($this->rules as $name => $rules) {
/** @var array<array<TypesProxy,string>> $typeValidator */
$typeValidator = array_pop($rules);
$key = $this->alias[$name];
if (!isset($params[$key])) {
if ($rules[0] instanceof RequiredValidatorFilter) {
if (!isset($params[$name])) {
if (!empty($rules) && $rules[0] instanceof RequiredValidatorFilter) {
return $this->addError('The request field ' . $name . ' is mandatory and indispensable');
}
if (!$typeValidator[0]->allowsNull) {
return $this->addError('The request field ' . $name . ' parameter cannot be null');
}
$params[$key] = null;
}
if (!call_user_func($typeValidator, $this->formData, $name, $params[$key])) {
if (!call_user_func($typeValidator, $this->formData, $name, $params[$name] ?? null)) {
return $this->addError('The parameter type used in the request field ' . $name . ' is incorrect');
}