Doctrine 1.2 getResultCache и левые соединения - PullRequest
0 голосов
/ 06 апреля 2011

Если я использую отношения для сбора без кэширования, у меня есть 1 запрос.При кэшировании этот запрос разбивается на множество небольших запросов.

Один запрос:

$foobars = Doctrine_Query::create()
->from('Project_Model_Table table')
->leftJoin('table.Table1 table1')
->leftJoin('table1.Table2 table2')
->leftJoin('table.Table3 table3')
->leftJoin('table3.Table4 as table4')
->orderBy('table.created DESC')
->execute();

Очень маленькие запросы на выборку:

$foobars = Doctrine_Query::create()
->from('Project_Model_Table table')
->leftJoin('table.Table1 table1')
->leftJoin('table1.Table2 table2')
->leftJoin('table.Table3 table3')
->leftJoin('table3.Table4 as table4')
->orderBy('table.created DESC')
->useResultCache(true)
->execute();

1 Ответ

0 голосов
/ 28 июня 2011

Вам необходимо добавить это в класс вашей модели:

//lib/model/Table.class.php

class Table extends BaseTable{
  public function serializeReferences($bool=null)
  {
   return true;
  }
}
...