php - Laravel Scout - 观察关系

标签 php mysql laravel elasticsearch elasticsearch-indices

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

问题是主模型不监视关系。

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

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

最佳答案

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

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

protected $touches = ['post'];

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

关于php - Laravel Scout - 观察关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39941303/

相关文章:

php - 在 PHP 中包含文件时,注释会影响吗?

php - UTF-8 编码无法正常工作 php

php - PHP中如何调用存储过程

php - Blueimp 文件多重上传到 Mysql

php - 更改数据库中ENUM的值

php - mysql无缓冲查询锁定不锁定

java - 打开购物车与其他系统集成

处理程序中的 Laravel dontReport 不工作

php - Laravel 检查相关模型是否存在

php - Composer global 要求 Laravel/Installer 不能在 Ubuntu 上运行