Skip to content

Commit

Permalink
fix: correct casting of boolean model properties
Browse files Browse the repository at this point in the history
  • Loading branch information
canvural committed Apr 21, 2020
1 parent 692fcd1 commit d1f1861
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions src/Properties/ModelPropertyExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -241,46 +241,47 @@ private function castPropertiesType(Model $modelInstance): void
switch ($type) {
case 'boolean':
case 'bool':
$realType = 'boolean';
$readableType = new BooleanType();
$writableType = TypeCombinator::union(new BooleanType(), new ConstantIntegerType(0), new ConstantIntegerType(1));
break;
case 'string':
$realType = 'string';
$readableType = $writableType = 'string';
break;
case 'array':
case 'json':
$realType = 'array';
$readableType = $writableType = 'array';
break;
case 'object':
$realType = 'object';
$readableType = $writableType = 'object';
break;
case 'int':
case 'integer':
case 'timestamp':
$realType = 'integer';
$readableType = $writableType = 'integer';
break;
case 'real':
case 'double':
case 'float':
$realType = 'float';
$readableType = $writableType = 'float';
break;
case 'date':
case 'datetime':
$realType = $this->dateClass;
$readableType = $writableType = $this->dateClass;
break;
case 'collection':
$realType = '\Illuminate\Support\Collection';
$readableType = $writableType = '\Illuminate\Support\Collection';
break;
default:
$realType = class_exists($type) ? ('\\'.$type) : 'mixed';
$readableType = $writableType = class_exists($type) ? ('\\'.$type) : 'mixed';
break;
}

if (! array_key_exists($name, $this->tables[$modelInstance->getTable()]->columns)) {
continue;
}

$this->tables[$modelInstance->getTable()]->columns[$name]->readableType = $realType;
$this->tables[$modelInstance->getTable()]->columns[$name]->writeableType = $realType;
$this->tables[$modelInstance->getTable()]->columns[$name]->readableType = $readableType;
$this->tables[$modelInstance->getTable()]->columns[$name]->writeableType = $writableType;
}
}
}

0 comments on commit d1f1861

Please sign in to comment.