是否可以将remember(60)
功能应用于Service::all()
?
这是一个很少会改变的数据集。我尝试了几种变化但没有成功:
Service::all()->remember(60);
Service::all()->remember(60)->get();
(Service::all())->remember(60);
当然,我知道其他可用的缓存方法,但我更喜欢这种方法的清洁度。
答案 0 :(得分:6)
是的,您应该可以简单地交换两个,例如
更改
Service::get()->remember(60);
到
Service::remember(60)->get();
奇怪的怪癖我同意,但是几周后我遇到这个问题并意识到我要做的就是将remember($time_to_remember)
放在查询构建器的其余部分前面,它就像魅力一样。
为了您的乐趣:见Laravel 4 Query Builder Docs Here
/**
* Indicate that the query results should be cached.
*
* @param int $minutes
* @param string $key
* @return \Illuminate\Database\Query\Builder
*/
public function remember($minutes, $key = null)
{
list($this->cacheMinutes, $this->cacheKey) = array($minutes, $key);
return $this;
}