Laravel Scout - 观察关系

时间:2016-10-09 07:53:14

标签: php mysql laravel elasticsearch elasticsearch-indices

当我导入索引时,一切正常(包括关系)。

问题在于主模型不关注关系。

当我更新关系时,索引也不会更新。

有没有办法在修改关系时使用与Cache::tags类似的东西来更新索引?或许是另一种方式。

1 个答案:

答案 0 :(得分:2)

遗憾的是,使用Scout没有直接的方法。但是,使用另一个Laravel功能,您可以“欺骗”Laravel更新记录。

向每个子类添加一个$touches变量,其中包含与父级关系的方法名称。例如,如果您有一个带有post()方法的Comment类返回belongsTo()关系,那么您将添加到Comment类:

protected $touches = ['post'];

修改评论后,它会更新父级的updated_at字段,Scout会看到并更新记录。