Результаты предварительной фильтрации разведчика Laravel.Встроенный, где () недостаточно развит - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть модель заказа, и я хочу иметь возможность создать два поиска.

  • Один, который ищет только неполные заказы.
  • Один, который ищет только завершенные заказы.

Я ожидал, что это будет просто, но, похоже, нет!

  1. В моей таблице заказов есть поле complete_at, в котором указана дата завершения,или ноль, когда нет.Встроенный метод Order::Search->where() не позволяет предоставить компаратор, а также не принимает значение NULL ... так что это не работает!

  2. Мне было интересно создать несколько индексовдля модели, а затем ->within('open_orders') функция для поиска правильной.Кажется, что это может обеспечить большую гибкость, но я также не вижу способа достичь этого.

Нечто подобное в модели было бы замечательно (но это не работает)

public function searchableAs()
{
    if($this->isOpen()){
        return 'open_orders_index';
    } else {
        return 'complete_orders_index';
    }
}

Кто-нибудь может предложить какие-либо обходные пути для предварительной фильтрации поискового запроса?

...