[铁柱分享]第四期:如何使用 Laravel Eloquent 删除表中的所有信息?

Laravel框架
395
0
0
2022-05-11

介绍

Laravel 附带的 Eloquent ORM 为你提供了一种与数据库交互的简单方法。 这简化了所有 CRUD(创建、读取、更新和删除)操作和任何其他数据库查询。

在本教程中, 你将学习如何使用 Laravel Eloquent 删除/清空表中的所有条目

我们将在本教程中使用一个称为 Post 示例 的模型 。

使用 truncate 从表中删除所有条目

如果我们正在编写纯 SQL,要从表中删除所有条目,我们可以使用 TRUNCATE 如下函数:

TRUNCATE users;

这基本上会清空整个表,并且还会将自动递增的 ID 重置为零。

为了用 Eloquent 做同样的事情,我们可以使用 DB Facade 如下:

DB::table('posts')->truncate();

或者,你也可以 truncate() 直接在模型上 调用该 方法:

Post::truncate();

使用 delete() 方法 删除所有条目

如果你只想删除某些特定条目,你可以首先按如下方式获取条目:

Post::query()->delete();

使用 delete() 比使用truncate)更多的好处 是你可以指定一些条件,以便你只能删除特定条目而不是所有条目:

Post::where('active', false)->delete();

或者,你也可以使用 DB facade而不是直接调用模型:

DB::table('posts')->delete();

DB::table('posts')->where('active', false)->delete();