public function insert() { $this->_callBeforeSaveCallbacks(); $primaryKey = $this->_modelDefinition->primaryKey; $attributes = $this->filterAttributesPreserveNull($this->_attributes); $query = Query::insert($attributes)->into($this->_modelDefinition->table); $lastInsertedId = QueryExecutor::prepare($this->_modelDefinition->db, $query)->insert($this->_modelDefinition->sequence); if ($primaryKey && $this->_modelDefinition->sequence) { $this->{$primaryKey} = $lastInsertedId; } $this->_callAfterSaveCallbacks(); $this->_resetModifiedFields(); return $lastInsertedId; }