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

eloquent, laravel, laravel-4

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.

Problem

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!

Original source

Related problems