Как я могу получить доц. Array With Cdbcriteria в Yii

В моей модели Events есть код, сгенерированный методом search (), который возвращает с $this->search()->data массив объектов Events. Однако я хочу иметь ассоциативный массив данных о событиях для моего jqGrid с CDbCriteria, а не Yii::app()->db->createCommand()->Select('...')->From('...')->Where('...'),

Любая идея, как это сделать с:

public function search(){

$criteria=new CDbCriteria;

$criteria->compare('id',$this->id);
$criteria->compare('Date',$this->Date,true);


}

1 ответ

Вы можете создать новую функцию в вашей модели: допустим, ваша модель называется User.

    public static function getValues($criteria){
            $array_result = array();
            $results = User::model()->findAll($criteria);
            foreach($results as $result){
                    $array_result[$result->id] = $result->date;        
            }
            return $array_result;
    } 

Вы можете заменить $result->id на то, что вы хотите в качестве ключа, а $result->date на любые значения в массиве. Вы можете получить результаты, передав критерии в функцию. Если вы хотите, вы можете удалить параметр критерия и просто получить все результаты или указать критерии внутри функции, если вам не нужно, чтобы он был очень динамичным.

Другие вопросы по тегам