正在从数据库 laravel 10 获取软删除记录

问题描述 投票:0回答:1

正在从数据库中获取软删除的记录。

我已向类别模型添加了软删除。当我软删除记录时,正在设置“deleted_at”列。但是,当我使用

从数据库中获取结果时
Category::latest('id')->paginate(20)

它也返回已删除的记录。

我的类别模型

class Category extends Model
{
    use  SoftDeletes;

    protected $fillable = [
        'name',
        'slug',
        'description',
        'is_active',
        'image',
    ];
}

使用望远镜检查查询并运行它。

select * from `categories` order by `id` desc limit 20 offset 0

但它应该运行

select * from `categories` where `deleted_at` is null order by `id` desc limit 20 offset 0
php laravel laravel-10 soft-delete
1个回答
0
投票

如果您在使用时看到软删除的记录

Category::latest('id')->paginate(20),

这可能是因为您需要明确告诉 Eloquent 仅获取未删除的记录。默认情况下,latest() 和 paginate() 不排除软删除记录。像下面这样-

Category::whereNull('deleted_at')->latest('id')->paginate(20);
© www.soinside.com 2019 - 2024. All rights reserved.