Пагинация и Relation Active Record

Есть реляионная 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;

Но наверняка есть более изящное решение.

А как применить CDBCriteria к $rubric->companies?

И еще один вопрос про пагинацию: Как задать свойства по-умолчанию для пейджера (cssFile, header и т.п.) глобально, чтобы в каждом контроллере не прописывать их?

не работал с CLinkPager, но подозреваю, что так $rubric->companies($oCriteria) - это приводит к поиску связанных моделей по критерию.

Еще можно покопать в сторону поиска с использованием with и критерия