protected function toType($value, $type)
{
if (in_array($type, ['integer', 'float']) && $value !== '' && $value !== null) {
settype($value, $type);
} else {
if ($type == 'boolean') {
$value = (bool) $value;
} else {
if ($type == 'many') {
$value = $value ?: [];
} else {
if (in_array($type, ['datetime', 'date', 'reference'])) {
$value = $value === '' ? null : $value;
}
}
}
}
return $value;
}