createMany method
Create child records and return a list of created row index.
var user = User();
var query = await user.cars();
await query.createMany([
{
'name':'Penske PC-23',
'createdAt':DateTime.now(),
'updatedAt':DateTime.now()
},{
'name':'Buick Regal.',
'createdAt':DateTime.now(),
'updatedAt':DateTime.now()
}
]);
Implementation
Future<List<int>> createMany(List<Map<String, Object?>> items) async {
if (items.isEmpty) {
throw Exception('Empty values');
}
if (query == null) {
throw Exception('cannot query without relationship');
}
String table = query!.split(' ')[0];
if (!(await eloquent.getColumnNames(table: table))
.contains(finalForeignKey)) {
throw Exception('cannot create parent data from child.');
}
final db = await eloquent.getDatabase;
List<int> ids = [];
for (var item in items) {
if (!item.keys.contains(finalForeignKey)) {
item[finalForeignKey!] = primaryValue;
}
ids.add(await db.insert(table, item));
}
resetAll();
return ids;
}