📜  laravel eloquent 从数据库中删除 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:33.275000             🧑  作者: Mango

Laravel Eloquent从数据库中删除

Laravel Eloquent是Laravel框架中非常强大的ORM工具。使用Eloquent,程序员可以轻松地从数据库中读取、更新和删除记录。在本文中,我们将重点关注如何从数据库中删除一条记录。

删除记录

要删除记录,我们可以使用模型中的delete()方法。例如,如果我们有一个名为User的模型,并且想要删除ID为1的用户,我们可以像这样调用delete()方法:

$user = User::find(1);
$user->delete();

这将从数据库中删除ID为1的用户。

硬删除与软删除

值得一提的是,Laravel Eloquent支持软删除。这意味着删除的记录不会真正从数据库中删除,而是将deleted_at字段设置为当前时间戳,以标记该记录已被删除。被软删除的记录可以通过withTrashed()onlyTrashed()方法进行查询。

默认情况下,Laravel Eloquent使用硬删除。要使用软删除,我们必须在模型类中添加SoftDeletes特征,并对应数据库表中添加deleted_at字段。例如:

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class User extends Model
{
    use SoftDeletes;

    protected $dates = ['deleted_at'];
}

现在,我们调用delete()方法会做软删除操作。如果我们想永久地从数据库中删除记录,可以调用forceDelete()方法。

$user = User::find(1);
$user->forceDelete();
批量删除

如果我们需要删除多条记录,我们可以使用whereIn()方法来指定多个ID。例如,如果我们要删除ID为1、2和3的用户,可以这样做:

User::whereIn('id', [1, 2, 3])->delete();

以上代码将删除ID为1、2和3的用户。

总结

使用Laravel Eloquent从数据库中删除记录非常简单。只需使用模型中的delete()方法即可。如果需要批量删除记录,我们可以使用whereIn()方法指定多个ID。同时,Laravel Eloquent还支持软删除和硬删除。软删除通过将delete_at字段设置为当前时间戳,将删除的记录标记为已删除。硬删除将永久从数据库中删除记录。