Baru saja diuji. Ini berhasil.
$newUsers = [
[
'username' => 'Felicia',
'age' => 27,
],
[
'username' => 'Timmy',
'age' => 71,
],
];
$columns = array_keys($newUsers[0]);
Peringatan! Ada dua cara untuk melakukan penyisipan massal. Ini salah satu caranya:
$insertQuery = $this->Users->query();
$newUsersValuesExpression = new ValuesExpression($columns, $insertQuery->typeMap()->types([]));
$newUsersValuesExpression->values($newUsers);
$insertQuery->insert($columns)
->values($newUsersValuesExpression)
->execute();
Seperti yang disarankan oleh ndm, saya lebih suka cara ini.
$insertQuery = $this->Users->query();
$insertQuery->insert($columns);
// you must always alter the values clause AFTER insert
$insertQuery->clause('values')->values($newUsers);
$insertQuery->execute();