Yii:CGridView中dataProvider的格式 [英] Yii: Format of dataProvider in CGridView

查看:176
本文介绍了Yii:CGridView中dataProvider的格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

CGridView 中显示数据的数组格式是什么。



我将数组发送到 dataProvider <

我在模型中使用下面的代码

  public function ExtensionList()
{
//我使用2数据库所以我打电话给db2-> createCommand
$ row = Yii :: app (') - > db2-> createCommand('b'select'=> array('extension','date_created'),$ b $''from'=>'extensions',
'where'=>extension_type ='EXTENSION',
)) - > queryAll();

返回$ row;

}

我的Index.php

 <?php $ this-> widget('zii.widgets.grid.CGridView',array(
'id'=>' (
'data');
'dataProvider'=> $ model-> ExtensionList(),
'columns'=> array(
'extension',
'date_created ',
),
)); ?>

以下格式的数组有什么错误。


Array([0] => Array([extension] => 2000 [date_created] =>
2013-07-24 21:15:09.993303)[1] => Array([extension] => 2001
[date_created] => 2013-07-24 21:23:07.94538)[2] => Array(
[extension] => 2002 [date_created] => 2013-07-26 11:58:59.537204))







网格显示在我的另一个模型中


$ criteria-> select ='service_id,count(*)as counts';
$ criteria-> condition =sdate between'$ this-> startdate'and'$ this-> enddate';
$ criteria-> group ='service_id';

返回新的CActiveDataProvider($ this,array(
'criteria'=> $ criteria,
'pagination'=> array('pageSize'=&30; ,
));

我使用这种类型来执行查询,它的工作正常并且记录在网格中显示。



但是为了显示扩展列表,我使用了createCommand,它不起作用。

 < code $ row = Yii :: app() - > dbcc-> createCommand(array(
'select'=> array('extension','extension_type','date_created'),
'from'=>'accounts',
'where'=>extension_type ='EXTENSION',
)) - > queryAll();
返回新的CActiveDataProvider($ this,array(
'criteria'=> $ row,
));

注意:我使用Yii 1.1.13

解决方案

查看CArrayDataProvider文档您选择id并将其用作CArrayDataProvider中的唯一标识符
$ b $ p $ data $'$ dataProvider'=> new CArrayDataProvider($ model-> ExtensionList(),array('id'=>'extension')),


What is the array format to display the data in CGridView.

I'm sending the array to dataProvider but nothing is comming in browser.

I'm using below code in my models

 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 ;

               }

my Index.php

<?php $this->widget('zii.widgets.grid.CGridView', array(
      'id'=>'extension-grid',
      'dataProvider'=>$model->ExtensionList(),
      'columns'=>array(
              'extension',
              'date_created',
      ),
)); ?>

What is the wrong in the below format of array.

Array ( [0] => Array ( [extension] => 2000 [date_created] => 2013-07-24 21:15:09.993303 ) [1] => Array ( [extension] => 2001 [date_created] => 2013-07-24 21:23:07.94538 ) [2] => Array ( [extension] => 2002 [date_created] => 2013-07-26 11:58:59.537204 ) )


If I used below code, grid is displaying in my another model

  $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 ),
                ));

I'm using this type to execute query, its working fine and records are displaying in grid.

But to display the extension list I'm using createCommand, its not working.

 $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 ,
                         ));

Note: I'm using Yii 1.1.13

解决方案

have a look at CArrayDataProvider documentationyou select the id and use it as unique identifier in CArrayDataProvider

'dataProvider'=> new CArrayDataProvider($model->ExtensionList(), array('id' =>'extension' )),

这篇关于Yii:CGridView中dataProvider的格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆