Laravel capture/override fetch/select 查询事件

Laravel capture/override fetch/select query events

所以我正在开发一个应用程序,我需要使用 laravel 使用的任何方法(例如 findallselect, get, 等等

我知道 delete/update/save 有事件要捕获。 SELECTish 类型的查询有类似的东西吗?我在某处看到可以使用 newFromBuilder 方法来捕获提取查询:

public function newFromBuilder($attributes = array())
{
    $instance = parent::newFromBuilder($attributes);

    $instance->fireModelEvent('loaded', true);

    return $instance;
}

但我认为以上只能在查询实际上是 运行 之后使用,而我想覆盖任何获取查询以将它们添加到缓存中。

P.S 我知道我可以在一些 Laravel Pcakages 的帮助下使用 CacheTags 但问题是我没有任何支持缓存标签的驱动程序。

感谢您的帮助。

好的,我认为我明白了,我们可以覆盖newBaseQueryBuilder:

protected function newBaseQueryBuilder()
{
    $conn = $this->getConnection();

    $grammar = $conn->getQueryGrammar();

    $builder = new Builder($conn, $grammar, $conn->getPostProcessor());

    // do our stuff with builder

    return $builder;
}