Когда я импортирую индекс все работает нормально (включая отношения).
Проблема в том, что основная модель не следит за отношениями.
Когда я обновляю отношение, индекс тоже не обновляется.
Есть ли способ использовать что-то подобное с Cache::tags
обновить индекс при изменении отношения? Или, может быть, это другой способ.
К сожалению, нет прямого способа сделать это с помощью Scout. Однако, используя другую функцию Laravel, вы можете «обмануть» Laravel для обновления записи.
Добавить $touches
переменная для каждого из дочерних классов, содержащая имена методов отношения с родителем. Например, если у вас был класс Comment с post()
метод, возвращающий belongsTo()
отношения, вы добавили бы в класс Comment:
protected $touches = ['post'];
Когда комментарий будет изменен, он обновит updated_at
поле родителя, которое скаут увидит и обновит запись.
Других решений пока нет …