Составные поля при выборке из модели

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
oldpunk
Сообщения: 11
Зарегистрирован: 2010.11.02, 11:18

Составные поля при выборке из модели

Сообщение oldpunk »

Возникла такая ситуация что в выборку потребовалось добавить составное поле и отсортировать по нему. Запрос сформировался нормально, но при обращении к модели, пишет что такого параметра нет. Вот код

Код: Выделить всё

 $criter = new CDbCriteria;
                $criter->select = '*, rate/users as rate_cnt';
                $criter->order = 'rate_cnt DESC';
                $images = Images::model()->findAll($criter);
Пишет ошибку при обращении к параметру

Код: Выделить всё

$images[0]->rate_cnt
, говорит нет его
Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: Составные поля при выборке из модели

Сообщение andy_s »

В модели Images есть public поле rate_cnt?
oldpunk
Сообщения: 11
Зарегистрирован: 2010.11.02, 11:18

Re: Составные поля при выборке из модели

Сообщение oldpunk »

естественно нет, иначе бы ошибку не выдавало. Но в ней так же нет параметров которые соответствуют полям таблицы в бд. Они я так понимаю автоматом генерируются при создании объекта, почему тогда это поле не генерируется. Должны быть какие то стандартные методы. В кохане например такой проблемы нет, там объект формируется с теми полями которые указаны в select
Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: Составные поля при выборке из модели

Сообщение andy_s »

Я вам и привёл самый простой стандартный метод решения проблемы :) Поля таблицы доступны без объявления благодаря методам __get() и __set(), которые берут эти поля из метаданных, а поля rate_cnt в метаданных таблицы нет, следовательно, его нужно добавить в класс вручную.
oldpunk
Сообщения: 11
Зарегистрирован: 2010.11.02, 11:18

Re: Составные поля при выборке из модели

Сообщение oldpunk »

хм...Значит как вариант это переписать метод выборки так что бы он добавлял параметры для полей, для которых нет аналогов в объекте. Осталось только найти в каком методе это можно сделать...
Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: Составные поля при выборке из модели

Сообщение andy_s »

oldpunk писал(а):хм...Значит как вариант это переписать метод выборки так что бы он добавлял параметры для полей, для которых нет аналогов в объекте. Осталось только найти в каком методе это можно сделать...
К чему такие сложности? Добавить несколько полей в класс гораздо проще, и это нормальная практика.
TM123
Сообщения: 608
Зарегистрирован: 2011.06.09, 11:18

Re: Составные поля при выборке из модели

Сообщение TM123 »

Вот это бы хорошо в раздел что вы хотите от Yii 2.0, чтобы он смотрел не только на метаданные в описании таблицы, но и на то что получил из запроса.
Ответить