Току що тестван. Това работи.
$newUsers = [
[
'username' => 'Felicia',
'age' => 27,
],
[
'username' => 'Timmy',
'age' => 71,
],
];
$columns = array_keys($newUsers[0]);
Тревога! Има два начина за масово вмъкване. Това е един от начините:
$insertQuery = $this->Users->query();
$newUsersValuesExpression = new ValuesExpression($columns, $insertQuery->typeMap()->types([]));
$newUsersValuesExpression->values($newUsers);
$insertQuery->insert($columns)
->values($newUsersValuesExpression)
->execute();
Както беше предложено от ndm, предпочитам този начин.
$insertQuery = $this->Users->query();
$insertQuery->insert($columns);
// you must always alter the values clause AFTER insert
$insertQuery->clause('values')->values($newUsers);
$insertQuery->execute();