Php Laravel捕获/覆盖获取/选择查询事件

Php Laravel捕获/覆盖获取/选择查询事件,php,laravel,caching,laravel-5.3,Php,Laravel,Caching,Laravel 5.3,因此,我正在开发一个应用程序,其中我需要使用laravel使用的任何方法来缓存特定的SELECT查询,例如find、all、SELECT、get,等等 我知道有些事件需要捕捉。对于SELECTish类型的查询,是否存在类似的问题?在某个地方,我看到可以使用newfromguilder方法捕获获取查询: public function newFromBuilder($attributes = array()) { $instance = parent::newFromBuilder($at

因此,我正在开发一个应用程序,其中我需要使用laravel使用的任何方法来缓存特定的
SELECT
查询,例如
find
all
SELECT
get
,等等

我知道有些事件需要捕捉。对于
SELECT
ish类型的查询,是否存在类似的问题?在某个地方,我看到可以使用
newfromguilder
方法捕获获取查询:

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

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

    return $instance;
}
但我认为只有在实际运行查询之后才能使用上面的方法,而我希望覆盖任何获取查询以将它们添加到缓存中

另外,我知道我可以在一些Laravel Pcakages的帮助下使用
CacheTags
,但问题是我没有任何支持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;
}
好的,我想我已经解决了,我们可以覆盖
newBaseQueryBuilder

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

    $grammar = $conn->getQueryGrammar();

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

    // do our stuff with builder

    return $builder;
}

我只想知道哪个
Builder
正在使用。这是一个数据库生成器或查询生成器。我只想知道哪个
Builder
正在使用。它是一个数据库生成器或查询生成器。