繁体   English   中英

Laravel对原始查询问题进行软删除

[英]Laravel softdeletes on a raw query problem

我在laravel中使用SoftDeletes ,但是即使数据库中有deleted_at列,它也会检索数据库中的deleted_at列。 我正在使用原始查询来检索表中的数据。 有人可以告诉我该怎么做吗?

我删除后的结果 在此处输入图片说明

我的数据库 在此处输入图片说明

询问

$products = DB::select(
            "SELECT products.id, products.price, products.product_name, products.description, products.quantity, suppliers.name
             FROM products
             JOIN suppliers ON products.supplier_id = suppliers.id"
             );

模型

use SoftDeletes;
    protected $fillable = [
        'product_name', 'quantity', 'description' ,'supplier_id', 'price',
    ];

  public function supplier()
    {
        return $this->hasOne('App\Supplier');
    }
}

当您使用原始查询时,您绕过了Eloquent的帮助,后者针对软删除的行进行过滤。 因此,您需要添加一个附加的where子句以过滤这些行,如下所示:

SELECT products.id, products.price, products.product_name, products.description, products.quantity, suppliers.name
             FROM products
             JOIN suppliers ON products.supplier_id = suppliers.id
             WHERE products.deleted_at is null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM