Похоже, ваши отношения индексируются в модельном индексе Event
, верно?
Возможно, оно не обновляется, потому что отношения уже загружены, а Laravel не обновляет данные отношений, которые уже загружен, например:
$event = Event::with('priceranges')->first()
var_dump($event->priceranges->count()): // outputs for example 5
$event->priceranges()->create([...]);
var_dump($event->priceranges->count()): // still outputs 5, meaning that the created pricerange is not loaded
Итак, чтобы исправить эту проблему, вы можете перезагрузить модель перед вызовом searchable()
:
$event = $event->fresh();
$event->searchable();
Но обратите внимание, что каждый раз, когда вы обновляете, метод поиска уже вызывается, поэтому вы будете индексировать его два раза при каждом обновлении.
Таким образом, в качестве альтернативы вы можете обновить метод toSearchableArray()
в модели Event
, чтобы получить модель fre sh перед возвратом данных (я предполагаю, что вы используете babenkoivan/scout-elasticsearch-driver
).