У меня есть сценарий, где у меня есть шаблоны, которые имеют много тем.
Достаточно ясно, что мое отношение будет шаблон hasmany themes
Я хочу показать шаблон с количеством тем и применяю этот код:
$this->Template->recursive = 2;
$this->Template->bindModel(
array(
'hasMany' =>array(
'TemplateTheme'=>array(
'className'=>'TemplateTheme',
'fields' => 'count(TemplateTheme.id) AS themes'
)
)
),false
);
$this->paginate = array(
'order' => array('Template.modified DESC'),
'limit' =>$limit
);
$template = $this->paginate('Template');
pr($template);die();
но я получаю
Array
(
[0] => Array
(
[Template] => Array
(
[id] => 1
[name] => churchDesign
[status] => Active
[created] => 2011-10-24 10:37:23
[modified] => 2011-10-25 15:16:46
)
[TemplateTheme] => Array
(
[0] => Array
(
[template_id] => 1
[TemplateTheme] => Array
(
[0] => Array
(
[themes] => 3
)
)
)
)
)
[1] => Array
(
[Template] => Array
(
[id] => 2
[name] => blossoms
[status] => Active
[created] => 2011-10-19 00:00:00
[modified] => 2011-10-24 14:05:27
)
[TemplateTheme] => Array
(
)
)
)
Проблема здесь в том, что он считает все темы в первом массиве (1-й шаблон) .see [TemplateTheme] => Array
(
[0] => Массив
(
[themes] => 3
)
третья тема фактически принадлежит второму шаблону. Отношение
template_id находится в таблице тем для представления каждой темы для шаблона.
Шаблон 1 имеет 2 темы, а шаблон 2 имеет одну тему, и в настоящее время в нем отображаются все три темы в первом шаблоне.
я хочу вот так
templatename1
count of themes 1st template
template name 2
count of themes of 2nd template
Пожалуйста, скажите мне правильный способ сделать это.