Результаты предварительной фильтрации Laravel Scout. Встроенный где () недостаточно развит

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

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

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

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

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

Как-то так в модели было бы здорово (но это не работает)

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

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

0 ответов

Другие вопросы по тегам