delete method

  1. @override
Future<int> delete()
override

Delete rows from table and return number of changes.

var user = User();

var query = await user.cars();
// delete all rows from users
await query.delete();

// delete rows where name has 'j' from users
await query.where('name','%j%',operator:Operator.like).delete();

Implementation

@override
Future<int> delete() async {
  if (query == null) {
    return super.delete();
  }
  String q = 'SELECT table1.id FROM ' + query!;
  try {
    resetSelectedColunns();
    resetDistinct();
    resetOrderBy();
    resetGroupBy();
    resetLimit();
    resetLimit();
    resetOffset();
    q = generateQuery(q);
    String table = query!.split(' ')[0];
    q = 'DELETE from $table WHERE id IN ($q)';
    resetAll();

    Database _db = await eloquent.getDatabase;
    return await _db.rawDelete(q);
  } catch (e) {
    throw Exception('Generated query: "$q" \n' + e.toString());
  }
}