Каков формат массива для отображения данных в CGridView.Yii: Формат dataProvider в CGridView
Я отправляю массив на dataProvider, но ничего не происходит в браузере.
Я использую ниже код в моей модели
public function ExtensionList()
{
// I'm Using 2 database So I'm calling db2->createCommand
$row = Yii::app()->db2->createCommand(array(
'select' => array('extension', 'date_created'),
'from' => 'extensions',
'where' => "extension_type = 'EXTENSION'",
))->queryAll();
return $row ;
}
мой Index.php
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'extension-grid',
'dataProvider'=>$model->ExtensionList(),
'columns'=>array(
'extension',
'date_created',
),
)); ?>
Что неправильно в приведенном ниже формате массива.
Array ([0] => Array ([расширение] => 2000 [date_created] => 2013-07-24 21: 15: 09,993303) [1] => Array ([расширение] => 2001 [date_created] => 2013-07-24 21: 23: 07.94538) [2] => Array ( [extension] => 2002 [date_created] => 2013-07-26 11: 58: 59.537204))
Если бы я использовал ниже код, сетка отображения в моей другой модели
$criteria=new CDbCriteria;
$criteria->select='service_id,count(*) as counts';
$criteria->condition = "sdate between '$this->startdate' and '$this->enddate'";
$criteria->group ='service_id';
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination' => array('pageSize' => 30),
));
Я использую этот тип для выполнения запроса, его работоспособность и записи отображаются в сетке.
Но для отображения списка расширений я использую createCommand, его не работает.
$row = Yii::app()->dbcc->createCommand(array(
'select' => array('extension', 'extension_type', 'date_created'),
'from' => 'accounts',
'where' => "extension_type = 'EXTENSION'",
))->queryAll();
return new CActiveDataProvider($this, array(
'criteria'=> $row ,
));
Примечание: Я использую Yii 1.1.13
Привет, Спасибо за ответ, теперь я usnig как этот «DataProvider» => новый CArrayDataProvider ($ модель -> ExtensionList()), но я получаю ошибку как Undefined index: id в /var/www/Yii/yii-1.1.13.e9e4a0/framework/web/CArrayDataProvider.php(108) – ungalnanban
вам нужно указать id для CArrayDataProvider для уникальной идентификации каждой записи. – Neophile
привет, я обновил свой вопрос – ungalnanban