lithium\data\source\Database::_cast PHP Method

_cast() protected method

Cast a value according to a column type, used by Database::value().
See also: lithium\data\source\Database::value()
protected _cast ( string $type, string $value, array $column, array $schema = [] ) : mixed
$type string Name of the column type.
$value string Value to cast.
$column array The column definition.
$schema array Formatted array from `lithium\data\source\Database::schema()`.
return mixed Casted value.
    protected function _cast($type, $value, $column, $schema = array())
    {
        $column += array('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';
    }