2013-03-03 2 views
1
PresentationView hasMany SlideView 

SlideView модель имеет полевую продолжительность.сгруппированные модели

Презентация_duration = сумма всех полей SlideView.duration из слайд-представлений, принадлежащих презентации.

Я хочу получить список (paged) презентаций с презентацией для каждой презентации. До сих пор я пытаюсь так:

$this->paginate['contain'] = array(
      'PresentationView' => array(
       'SlideView' => array(
        'group' => 'SlideView.presentation_view_id', 
            // 'conditions' => array('group' => 'SlideView.presentation_view_id'), 
       ) 
      ) 
     ); 

Закомментированный линия вариант, который я попробовал.

Оба метода в конечном итоге с некоторыми ошибками SQL:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'SlideView.group' in 'fieldlist' 

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'group' in 'where clause' 

Кажется, что contain Безразлично даже не признает group ключа - это даже можно использовать группировку, как это? Если да, то как я могу это сделать?

ответ

3

Вы не можете передать 'группу' в свой 'содержать'. Чтобы сделать то, что вы надеетесь сделать, вам нужно использовать JOINs - см. CakePHP Joining Tables.