Search code examples
laravellaravel-4eloquent

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


My guess was to use the following syntax:

MyModel::all()->delete();

But that did not work. I'm sure it's super simple, but I've searched for documentation on the subject and can't find it!


Solution

  • 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.