2015-08-10 2 views
0
$criteria = new CDbCriteria; 
    $criteria->alias = 'form'; 
    $criteria->select = "(to_char(form.created_at,'Mon') || '-' || extract(year from form.created_at)) as monthyear"; 
    $criteria->group = "monthyear"; 
    $criteria->order = "monthyear DESC"; 

    $model = odkForm::model()->findAll($criteria); 

почему мой $ модель вернуть пустой? ... как это, но не в другой таблицеОШИБКА: юй CDbCriteria ошибка при использовании ВЫБРАТЬ AS

Любой может помочь?

+0

$ модели ** null ** или в каждой модели не существует свойство 'monthyear'? –

+0

@ DanilaGanchar да, нет месяца, но мы можем использовать 'as' без установки monthyear в модели beacause, я просто вызываю monthyear один раз, на postgresql или другом мы можем создавать' as' поле каждый раз без заданной модели – alpiopio

ответ

0

думаю пустой, т.к. в вашей модели не существует свойство monthyear. Таким образом, вы можете использовать ASс именем полей, которое описано в модели. Вот небольшой пример, я думаю, это должно работать нормально. Надеюсь, это поможет вам.

$criteria = new CDbCriteria; 
$criteria->alias = 'form'; 
// because created_at exist in model 
$criteria->select = "(to_char(form.created_at,'Mon') || '-' || extract(year from form.created_at)) as created_at"; 
$criteria->group = "created_at"; 
$criteria->order = "created_at DESC"; 

$model = odkForm::model()->findAll($criteria); 
+0

Да. ..Это решение этой проблемы, но когда нам нужно выбрать все поле, и мы создаем много динамического поля «как», можно ли решить эту проблему ... спасибо всем! – alpiopio