首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii,CsqlDataProvider中的排序和列名

Yii,CsqlDataProvider中的排序和列名
EN

Stack Overflow用户
提问于 2012-12-02 11:46:06
回答 1查看 2.3K关注 0票数 2

我曾尝试在csqldataprovider中使用cgridview。

  1. 我的sql查询从不同的表中获取数据。我在查询中使用了别名。因此,在gridview中,当我单击header值时,它使用列名进行排序。也就是说,column name = Track --它将用... order by Track创建查询,但实际上它应该创建...order by t.trackname
  2. 为了增加更多的复杂性,我在表中将列名作为表名。例如,在同一数据库中,表名为Storetrackid,我在同一数据库中有另一个表名为trackid
  3. 我查过solution了。在cgridview中,当我指定列属性时,它不会变得可排序(没有锚标记)。没有列属性,它是可排序的。

在控制器文件中,

代码语言:javascript
复制
$dataProvider=new CSqlDataProvider($query, array(
        'totalItemCount'=>$count,
        'sort'=>array('defaultOrder'=>'caseid DESC',
            'attributes'=>array(
             'caseid',
             'trackid',
             'status',
            ),
        ),
        ));

在视图文件中

代码语言:javascript
复制
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'ajaxUpdate'=>true,
'columns'=>array(
    array('header'=>'Case','name'=>'Case','value'=>'$data[caseid]'),
    array('header'=>'Track','name'=>'Track','value'=>'$data[trackid]'),
    array('header'=>'Status','name'=>'Status','value'=>'$data[status]'),
),
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-02 16:28:34

您必须为CGridView的每一列指定正确的CGridView。在示例代码中,它是不正确的,您使用的是'name'=>'Case',而应该是'name'=>'caseid',即name的值应该是您在sql中指定的别名确切值。

更新:

  1. 还请注意,如果不执行任何格式设置或修改从db检索的值,则不需要value属性。name属性将负责从db结果集中获取正确的值。header将负责显示列标题名称,在您的示例中它是Case。 示例: ‘列’=‘Case=’>数组(数组(‘header’=‘Case’‘,’name‘=’caseid‘’),//‘值’=‘$datacaseid’‘),数组(头Case=’>‘跟踪’,‘名称’=‘trackid’),//‘值’‘=’$datatrackid‘),数组(头Case=’>状态‘,’名称‘=’Case=‘>状态’‘,//’值‘’>$datastatus‘),
  2. 要处理情况1和2,请在sql中使用别名(Es),并在sortattributes数组和name中使用这些别名的值。 Sql示例: 选择t.trackname作为some_alias ..。 数据提供程序: ‘排序’=>数组(‘属性’=>数组(‘some_别名’,// .更多的属性. ),// .更多的选择), CGridView: ‘’columns‘=>数组(数组(’Header‘=’some_alias‘,’Name‘=>’some_别名‘,’value‘=’$data“some_alias‘//如前所述-如果您不修改该值,这是不必要的) 因此,当您排序时,生成的查询将类似于:order by some_alias,这非常好。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13668964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档