src/xPDO/Om/xPDOObject.php
protected function _setRaw($key, $val) {
        $set = false;
        if ($val === null) {
            $this->_fields[$key] = null;
            $set = true;
        } else {
            $phptype = $this->_getPHPType($key);
            $dbtype = $this->_getDataType($key);
            switch ($phptype) {
                case 'int':
                case 'integer':
                case 'boolean':
                    $this->_fields[$key] = (integer) $val;
                    $set = true;
                    break;
                case 'float':
                    $this->_fields[$key] = (float) $val;
                    $set = true;
                    break;
                case 'array':
                    if (is_array($val)) {
                        $this->_fields[$key]= serialize($val);
                        $set = true;
                    } elseif (is_string($val)) {
                        $this->_fields[$key]= $val;
                        $set = true;
                    } elseif (is_object($val) && $val instanceof xPDOObject) {
                        $this->_fields[$key]= serialize($val->toArray());
                        $set = true;
                    }
                    break;
                case 'json':
                    if (!is_string($val)) {
                        $v = $val;
                        if (is_array($v)) {
                            $this->_fields[$key] = $this->xpdo->toJSON($v);
                            $set = true;
                        } elseif (is_object($v) && $v instanceof xPDOObject) {
                            $this->_fields[$key] = $this->xpdo->toJSON($v->toArray());
                            $set = true;
                        }
                    } else {
                        $this->_fields[$key]= $val;
                        $set = true;
                    }
                    break;
                case 'date':
                case 'datetime':
                case 'timestamp':
                    if (preg_match('/int/i', $dbtype)) {
                        $this->_fields[$key] = (integer) $val;
                        $set = true;
                        break;
                    }
                default:
                    $this->_fields[$key] = $val;
                    $set = true;
            }
        }
        if ($set) $this->setDirty($key);
        return $set;
    }
protected function _setRaw($key, $val) {
        $set = false;
        if ($val === null) {
            $this->_fields[$key] = null;
            $set = true;
        } else {
            $phptype = $this->_getPHPType($key);
            $dbtype = $this->_getDataType($key);
            switch ($phptype) {
                case 'int':
                case 'integer':
                case 'boolean':
                    $this->_fields[$key] = (integer) $val;
                    $set = true;
                    break;
                case 'float':
                    $this->_fields[$key] = (float) $val;
                    $set = true;
                    break;
                case 'array':
                    if (is_array($val)) {
                        $this->_fields[$key]= serialize($val);
                        $set = true;
                    } elseif (is_string($val)) {
                        $this->_fields[$key]= $val;
                        $set = true;
                    } elseif (is_object($val) && $val instanceof xPDOObject) {
                        $this->_fields[$key]= serialize($val->toArray());
                        $set = true;
                    }
                    break;
                case 'json':
                    if (!is_string($val)) {
                        $v = $val;
                        if (is_array($v)) {
                            $this->_fields[$key] = $this->xpdo->toJSON($v);
                            $set = true;
                        } elseif (is_object($v) && $v instanceof xPDOObject) {
                            $this->_fields[$key] = $this->xpdo->toJSON($v->toArray());
                            $set = true;
                        }
                    } else {
                        $this->_fields[$key]= $val;
                        $set = true;
                    }
                    break;
                case 'date':
                case 'datetime':
                case 'timestamp':
                    if (preg_match('/int/i', $dbtype)) {
                        $this->_fields[$key] = (integer) $val;
                        $set = true;
                        break;
                    }
                default:
                    $this->_fields[$key] = $val;
                    $set = true;
            }
        }
        if ($set) $this->setDirty($key);
        return $set;
    }
protected function _setRaw ( $ key , $ val ) { $ set = false ; if ( $ val === null ) { $ this -> _fields [ $ key ] = null ; $ set = true ; } else { $ phptype = $ this -> _getPHPType ( $ key ) ; $ dbtype = $ this -> _getDataType ( $ key ) ; switch ( $ phptype ) { case 'int' : case 'integer' : case 'boolean' : $ this -> _fields [ $ key ] = ( integer ) $ val ; $ set = true ; break ; case 'float' : $ this -> _fields [ $ key ] = ( float ) $ val ; $ set = true ; break ; case 'array' : if ( is_array ( $ val ) ) { $ this -> _fields [ $ key ] = serialize ( $ val ) ; $ set = true ; } elseif ( is_string ( $ val ) ) { $ this -> _fields [ $ key ] = $ val ; $ set = true ; } elseif ( is_object ( $ val ) && $ val instanceof xPDOObject ) { $ this -> _fields [ $ key ] = serialize ( $ val -> toArray ( ) ) ; $ set = true ; } break ; case 'json' : if ( ! is_string ( $ val ) ) { $ v = $ val ; if ( is_array ( $ v ) ) { $ this -> _fields [ $ key ] = $ this -> xpdo -> toJSON ( $ v ) ; $ set = true ; } elseif ( is_object ( $ v ) && $ v instanceof xPDOObject ) { $ this -> _fields [ $ key ] = $ this -> xpdo -> toJSON ( $ v -> toArray ( ) ) ; $ set = true ; } } else { $ this -> _fields [ $ key ] = $ val ; $ set = true ; } break ; case 'date' : case 'datetime' : case 'timestamp' : if ( preg_match ( '/int/i' , $ dbtype ) ) { $ this -> _fields [ $ key ] = ( integer ) $ val ; $ set = true ; break ; } default : $ this -> _fields [ $ key ] = $ val ; $ set = true ; } } if ( $ set ) $ this -> setDirty ( $ key ) ; return $ set ; }
Set a raw value on a field converted to the appropriate type.

@access protected
@param string $key The key identifying the field to set.
@param mixed $val The value to set.
@return boolean Returns true if the value was set, false otherwise.
Set a raw value on a field converted to the appropriate type .