Laravel Scout - 观察关系

Laravel Scout - observe relations

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

问题是主模型没有监视关系。

当我更新关系时,索引也没有更新。

有什么方法可以在关系被修改时使用类似于Cache::tags的东西来更新索引吗?或者也许是另一种方式。

不幸的是,没有直接的方法可以使用 Scout 执行此操作。但是,使用另一个 Laravel 功能,您可以 'trick' Laravel 更新记录。

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

protected $touches = ['post'];

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