Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * 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;
 }