protected function _doLowInsert()
{
$columnValues = [];
foreach ($this->modelsMetadata->getAttributes($this) as $attributeField) {
if ($this->{$attributeField} !== null) {
$columnValues[$attributeField] = $this->{$attributeField};
}
}
if (count($columnValues) === 0) {
throw new ModelException('`:model` model is unable to insert without data', ['model' => get_class($this)]);
}
$connection = $this->getWriteConnection();
$connection->insert($this->getSource(), $columnValues);
$autoIncrementAttribute = $this->modelsMetadata->getAutoIncrementAttribute($this);
if ($autoIncrementAttribute !== null) {
$this->{$autoIncrementAttribute} = $connection->lastInsertId();
}
$this->_snapshot = $this->toArray();
}