/** * @return object */ public function current() { $current = $this->getCurrent(); if (count($this->relations) > 0) { foreach ($this->relations as $property => $relation) { $resultSet = new ResultSetArray($relation[$current->{$this->keys[0]}], $this->classname); ObjectProperty::set($property, $this->cardinality == 'one' ? $resultSet[0] : $resultSet, $current); } } return $current; }
/** * Inserts an object in the database table. This method checks the primary keys an the auto * increment ids if they exists. it returns the manipulated object itself. * * @param $object * @return null|object */ public static function insert($object) { static::handleEvent('preInsert', $object); $tableMeta = static::tableMeta(get_class($object)); $dataParams = static::objectTableData($object, 'auto_increment'); $sql = static::$sqlBuilder[static::$activeConnection]->insert(static::tableName(get_class($object)), $dataParams); $result = static::nativeExecute($sql, $dataParams, $tableMeta->hasAutoIncrement()); if ($result) { if ($tableMeta->hasAutoIncrement()) { ObjectProperty::set($tableMeta->getAutoIncrement(), $result, $object); } static::handleEvent('postInsert', $object); $result = $object; } return $result; }