Har lige testet. Dette virker.
$newUsers = [
[
'username' => 'Felicia',
'age' => 27,
],
[
'username' => 'Timmy',
'age' => 71,
],
];
$columns = array_keys($newUsers[0]);
Alert! Der er to måder at lave masseindsættelse på. Dette er en måde:
$insertQuery = $this->Users->query();
$newUsersValuesExpression = new ValuesExpression($columns, $insertQuery->typeMap()->types([]));
$newUsersValuesExpression->values($newUsers);
$insertQuery->insert($columns)
->values($newUsersValuesExpression)
->execute();
Som foreslået af ndm foretrækker jeg denne måde.
$insertQuery = $this->Users->query();
$insertQuery->insert($columns);
// you must always alter the values clause AFTER insert
$insertQuery->clause('values')->values($newUsers);
$insertQuery->execute();