Laravel 4:记住()结果来自:: all()

时间:2014-01-28 16:24:20

标签: php caching laravel-4

是否可以将remember(60)功能应用于Service::all()

这是一个很少会改变的数据集。我尝试了几种变化但没有成功:

  • Service::all()->remember(60);
  • Service::all()->remember(60)->get();
  • (Service::all())->remember(60);

当然,我知道其他可用的缓存方法,但我更喜欢这种方法的清洁度。

1 个答案:

答案 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;
 }

L4 Docs - Queries