Условное добавление индекса в Laravel Scout (Алголия)

Я пытаюсь добавить индекс в Алголию, используя Laravel Scout на основе условия. Например, у меня есть модель Article, и я хочу добавить эту статью в Algolia, только если это статья active. Мой первый подход был таким:

public function toSearchableArray()
{
   if($this->active) return $record;
   return [];

}

это только добавляет активные записи, но все еще пытается добавить пустые массивы, что считается операцией в алголии (за это будет взиматься плата). Второй подход заключался в использовании функции shouldBesearchable() из scout:

public function shouldBeSearchable()
{
    if($this->active) return true;
    return false;

}

Это не работает с php artisan scout:import "App\Article". Кто-нибудь сталкивался с подобной проблемой?


person Hirad Roshandel    schedule 10.01.2018    source источник


Ответы (1)


Это была ошибка в Laravel Scout, shouldBeSearchable еще не выпущен (в основной ветке), поэтому вы можете столкнуться с некоторыми проблемами, подобными этой.

Хотя, хорошие новости: это было только что исправлено этим пиаром. https://github.com/laravel/scout/pull/250

person Julien Bourdeau    schedule 11.01.2018
comment
Потрясающие! Спасибо. - person Hirad Roshandel; 12.01.2018
comment
Не стесняйтесь голосовать за мой ответ и отмечать его как решение;) - person Julien Bourdeau; 12.01.2018
comment
Версия была обновлена ​​15 дней назад, но shouldBeSearchable все еще не работает у меня, по какой причине? - person Zach Handley; 29.01.2018
comment
Вы используете основную ветку? Я не думаю, что он еще выпущен (помечен). - person Julien Bourdeau; 30.01.2018
comment
@ZachHandley поместите это в свой композитор json: laravel/scout: dev-master - person Hirad Roshandel; 06.02.2018