Delete all Laravel models in a table
June 26, 2022 ‐ 1 min read
I'm assuming you know that removing all the Laravel models from a table is a dangerous operation. You may not only delete the models you expect, but also other models with a foreign key with cascading delete.
That being said. My first assumption was to run
Model::all()->delete();, however this spawned an exception with message: 'Method Illuminate\Database\Eloquent\Collection::delete does not exist.'
It turns out that
all() already runs the SQL query and returns a collection. Instead you can use the
truncate() method to remove all the models in a table.
You can either call this method directly on the model:
Or via the