Gloss82
(Gloss82)
September 5, 2010, 6:14am
1
Есть реляионная Active Record, называется Gis Rubrics. Одна из связей выглядит так::
'companies' => array(self::MANY_MANY, 'GisCompanies','{{gis_rubrics_companies}}(id_rc_rubric, id_rc_company)'),
Обычная выборка компаний из рубрики выглядит так:
$rubric = GisRubrics::model()->findByPk(1);
$companies = $rubric->companies;
Как можно прикрутить к этому пагинацию?
maxx
(Ecomaxx)
September 5, 2010, 5:40pm
2
Есть реляионная Active Record, называется Gis Rubrics. Одна из связей выглядит так::
'companies' => array(self::MANY_MANY, 'GisCompanies','{{gis_rubrics_companies}}(id_rc_rubric, id_rc_company)'),
Обычная выборка компаний из рубрики выглядит так:
$rubric = GisRubrics::model()->findByPk(1);
$companies = $rubric->companies;
Как можно прикрутить к этому пагинацию?
Как один из вариантов, можно добавить еще такую связь:
'companiesCount' => array(self::STAT, 'GisCompanies','{{gis_rubrics_companies}}(id_rc_rubric, id_rc_company)'),
И передавать в CLinkPager количество связей $rubric->companiesCount;
Но наверняка есть более изящное решение.
Gloss82
(Gloss82)
September 6, 2010, 5:11am
3
maxx:
Как один из вариантов, можно добавить еще такую связь:
'companiesCount' => array(self::STAT, 'GisCompanies','{{gis_rubrics_companies}}(id_rc_rubric, id_rc_company)'),
И передавать в CLinkPager количество связей $rubric->companiesCount;
Но наверняка есть более изящное решение.
А как применить CDBCriteria к $rubric->companies?
И еще один вопрос про пагинацию: Как задать свойства по-умолчанию для пейджера (cssFile, header и т.п.) глобально, чтобы в каждом контроллере не прописывать их?
Mougrim
(Rinat)
September 7, 2010, 6:59am
4
не работал с CLinkPager, но подозреваю, что так $rubric->companies($oCriteria) - это приводит к поиску связанных моделей по критерию.
Еще можно покопать в сторону поиска с использованием with и критерия