gpt4 book ai didi

php - Laravel 在 eloquent 上添加全局条件

转载 作者:行者123 更新时间:2023-12-03 18:44:52 25 4
gpt4 key购买 nike

我收到了 invoices在使用单个查询的多个页面中。

查询代码:

$invoices = ImportInvoice::withSupplier() -> withCreatedByAndUpdatedBy() -> orderedName() -> paginate(10);

问题:

我已添加 approve数据库中的字段是 boolean发票被批准的值(value)天气 (1) 或不批准 (0) .

所以现在我必须添加 where('approve', 1)以获得批准的发票。

问题是我将在多个 Controller 中编辑这个 eloquent。

问题是:

有没有办法在模型中添加这个 where 条件?
另外,有时我想退回 未获批准 发票。

它类似于 软删除 由 Laravel 创建。
Soft delete调用查询时不会返回,但如果我想调用它,我只需调用 withTrashed()功能。

最佳答案

是的,你可以这样做,打开你的 ImportInvoice模型

第一 导入(添加)这节课 ..

use Illuminate\Database\Eloquent\Builder;

并添加此 boot方法
 protected static function boot()
{
parent::boot();

static::addGlobalScope('approve', function (Builder $builder) {
$builder->where('approve', 1);
});
}

现在默认获取 核准发票
 ImportInvoice::get()

并且您想要批准和未批准的发票然后这样做
ImportInvoice::withoutGlobalScope('approve')->get();

欲了解更多信息,请阅读此 article

关于php - Laravel 在 eloquent 上添加全局条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57017928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com