lithium\data\source\Database::_cast()
Cast a value according to a column type, used by Database::value().
Parameters
-
string
$typeName of the column type.
-
string
$valueValue to cast.
-
array
$columnThe column definition.
-
array
$schemaFormatted array from
lithium\data\source\Database::schema().
Returns
mixedCasted value.
Source
protected function _cast($type, $value, $column, $schema = []) {
$column += ['formatter' => null, 'format' => null];
if ($value === null) {
return 'NULL';
}
if (is_object($value)) {
return $value;
}
if (!$formatter = $column['formatter']) {
return $this->connection->quote($value);
}
if (!$format = $column['format']) {
return $formatter($value);
}
if (($value = $formatter($format, $value)) === false) {
$value = $formatter($format, $schema['default']);
}
return $value !== false ? $value : 'NULL';
}