Я получаю invoices на нескольких страницах, используя один запрос.
Код запроса:
$invoices = ImportInvoice::withSupplier() -> withCreatedByAndUpdatedBy() -> orderedName() -> paginate(10);
Я добавил поле approve в базу данных, которое имеет значение boolean независимо от того, одобрен ли счет-фактура (1) или не одобрен (0).
Итак, теперь мне нужно добавить where('approve', 1), чтобы получить утвержденные счета.
Проблема в том, что я буду редактировать этот красноречивый на нескольких контроллерах.
Есть ли способ добавить это условие в модель? Плюс иногда хочется вернуть счета Не одобрено.
Он похож на Мягкое удаление, созданный 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();
для получения дополнительной информации прочитайте этот статья
Спасибо, это было именно то, что я ищу.