您也许可以扩展查询构建器并简单地将get()
方法重载为首先调用remember()
,然后执行get()
语句。
但实际上,如果您想缓存每个查询,您不妨只在数据库级别执行此操作。例如,MySQL 有一个配置选项可以在一定时间内自动缓存所有查询。但是,在执行大量插入/更新/删除的应用程序中,这将具有较差的性能,因为在每次此类调用时都会为该表清除缓存。
如果同时进行插入/更新/删除,对每个查询使用 Laravel 也意味着获取过时的数据,因此每次更新时都必须清除缓存。
最佳实践是认真决定是否应该缓存查询。