Db::insert()
\nn\t3::Db()->insert($tableNameOrModel = '', $data = []);
Insert database entry. Simple and foolproof. Either the table name and an array can be transferred - or a domain model.
Inserting a new data set via table name and data array:
$insertArr = \nn\t3::Db()->insert('table', ['bodytext'=>'...']);
Copied!
Insert a new model. The repository is determined automatically. The model is persisted directly.
$model = new \My\Nice\Model();
$persistedModel = \nn\t3::Db()->insert( $model );
Copied!
@param mixed $tableNameOrModel
@param array $data
@return mixed
Source Code
public function insert ( $tableNameOrModel = '', $data = [] )
{
if (\nn\t3::Obj()->isModel( $tableNameOrModel )) {
$persistenceManager = \nn\t3::injectClass( PersistenceManager::class );
$persistenceManager->add( $tableNameOrModel );
$persistenceManager->persistAll();
$this->fixFileReferencesForModel( $tableNameOrModel );
return $tableNameOrModel;
}
$data = $this->filterDataForTable( $data, $tableNameOrModel );
$queryBuilder = $this->getQueryBuilder( $tableNameOrModel );
$queryBuilder->insert( $tableNameOrModel )
->values($data)->executeStatement();
$data['uid'] = $queryBuilder->getConnection()->lastInsertId();
return $data;
}
Copied!