public function execute()
{
if (empty($this->_models)) {
return;
}
$this->_callBeforeSaveCallbacks();
$metaInstance = Arrays::first($this->_models);
$columns = $metaInstance->getFieldsWithoutPrimaryKey();
$primaryKey = $metaInstance->getIdName();
$table = $metaInstance->getTableName();
$sql = DialectFactory::create()->batchInsert($table, $primaryKey, $columns, count($this->_models));
$params = $this->_prepareParams($primaryKey);
$ids = Arrays::flatten(Db::getInstance()->query($sql, $params)->fetchAll(PDO::FETCH_NUM));
$this->_assignPrimaryKeys($primaryKey, $ids);
$this->_callAfterSaveCallbacks();
}