Как я могу получить доц. 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 на любые значения в массиве. Вы можете получить результаты, передав критерии в функцию. Если вы хотите, вы можете удалить параметр критерия и просто получить все результаты или указать критерии внутри функции, если вам не нужно, чтобы он был очень динамичным.