Выбор определенных полей в запросе к БД

Правильно ли я понимаю что если требуется выбор определенных полей в результате запроса, то AR не самый удобный вариант ??

Да ф-ции типа findAllBySql позволяют указать какие поля отображать, но на сколько это оправданно особенно с учетом использования сложных многотабличных запросов ?

в общем кто как решает такую ситуацию ???

Используйте критерию (http://www.yiiframework.com/doc/api/CDbCriteria). В ней есть параметр select в котором и можно перечислить какие поля брать.

Да спсаибо, я про нее как то и забыл, однако в моем случае немного не так получается …

Т.е. если я правильно понял, то наличие определенного relation вызывает все поля из той таблицы к которой у нас есть отношения. А мне получается нужны не все поля из этой таблицы.

вот на пример, две таблицы

А и Б.

В модели А описываем связь к Б как BELONGS_TO

и делаем запрос

$criteria=new CDbCriteria;

$criteria->select = ‘A.field1, A.field2’;

… ->findAll($criteria);

При таком раскладе в ответ я получаю и все поля из Б таблицы ((.

т.е. на А таблицы "критерия" действует, а вот из Б выдергивает все равно все поля.

Может быть для таблиы Б нужно явно указать поля, которые нужно получить, ведь в вашем критерии указаны поля только для А, а про Б умалчивается (т.е. по дефолту все? а если ни одного, то зачем её вообще присоединять?). Извините, сам не пробовал)

Да я тоже так думал, пробывал и для Б указывать только определенные поля … не срабатывало, ладно полезу в исходник рзбираться как оно там работает…