我已经为我的电影表实现了Aloglia,并将actor作为关系表,它工作正常。
问题:
当我更新任何电影时,它也会更新algolia索引(很好)。但是如果我在关系表中做了任何更改(例如更新电影的演员),我怎么能更新索引。
如何使用laravel scout手动推送特定记录。
由于
答案 0 :(得分:0)
问题本身在于laravel的事件。正在发生的事情是侦察员正在倾听“更新”的声音。保存模型对象时仅在laravel中发生且为脏的事件(也就是值与db中的值不同)。
有两种方法可以做到这一点。
糟糕的懒惰方式只是在保存之前将this.selectedOption = '1';
添加到模型中 - 这将强制->touch()
字段更新并最终触发更新的事件。这很糟糕,因为您正在浪费数据库查询。
第二种也是最好的方法是在“保存的”上注册另一个观察者。无论对象是否脏,都会触发。可能你想要检查模型是否是脏的并且只在不存在时进行索引(以防止从更新的事件中进行双重索引)或者只是取消注册“更新的”'侦察员进入侦察兵。