2014-01-28 5 views
1

Можно ли применить функцию remember(60) к чему-то вроде Service::all()?Laravel 4: запомнить() результаты от: all()

Это набор данных, который редко меняется. Я пытался несколько вариантов, но безуспешно:

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

Конечно, я знаю других методов кэширования доступны, но я предпочитаю чистоту этого если это возможно.

+1

нечетная причуда, чтобы иметь в виду (см мой ответ ниже), но в ретроспективе, я предполагаю, что это имеет смысл;) ... Кроме того, я рекомендую проверить документы, приведенные ниже. – ErikTheDeveloper

ответ

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

Смежные вопросы