How to delete all the rows in a table using Eloquent?

The reason MyModel::all()->delete() doesn’t work is because all() actually fires off the query and returns a collection of Eloquent objects.

You can make use of the truncate method, this works for Laravel 4 and 5:

MyModel::truncate();

That drops all rows from the table without logging individual row deletions.

Leave a Comment