find + dataProvider

Один вопрос к тем кто более опытен в использовании фреймворка

Когда я делаю

$category = Category::model()->with->(‘products’)->findByPk($id);

$category->products; // здесь

почему вот здесь возвращается массив объектов а не CDataProvider.

Если бы у DataProvider был бы интефейсы от массива то тогда бы его можно было бы тоже использовать как массив, и помимо этого устанавливать к нему пагинаторы. Критерия у такого дата провайдера должна быть такая же как в запросе на выборку.

Сейчас приходится изрядно помучатся чтобы сделать выборку между MANY_MANY таблицами и приделать к этому всему пагинатор. Или я просто не знаю как делать это правильно.

Пожалуйста пролейте свет на этот вопрос.

И вообще мне кажется странным что нет встроенного класса для коллекций, а findAll возвращает просто массив объетов.

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

Если очень уж хочется, как вариант, можно переопределить CActiveRecord::populateRecords