createMany method

Future<List<int>> createMany(
  1. List<Map<String, Object?>> items
)

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;
}