douye6812 2016-03-06 19:29
浏览 45
已采纳

Yii按关系列HAS_MANY排序

Business model:

One invoice can have can have multiple status (Draft, in progress, send, deleted).

In CGridView I want display invoices with last status

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'carriage-grid',
    'dataProvider'=>$model->search(array(
        'completed'=>true,
        'pagination'=>true,
    )),
    'filter'=>$model,
    'columns'=> [
        array(
        'name'=>'InvoiceName',
        'type'=>'raw',
        'value'=>$model->InvoiceName,
    ),
        array(
        'name' => 'InvoiceStatus',
        'value' => $model->InvoiceStatus->Name,
    ),
    ]
)); ?>

In invoice model I have declared relation:

'status'=>array(self::HAS_MANY, 'InvoiceStatus', 'invoice_id'),

In CGridView data displayed is correct, but when I try to order by InvoiceStatus->name

What I get:

(BY ASC)
  1. Invoice name + first status
  2. Invoice name 2 + first status

(BY DESC)

  1. Invoice name + last status
  2. Invoice name 2 + last status

What I expect to get:

(BY ASC)

  1. Invoice name + A status
  2. Invoice name 2 + B status

(BY DESC)

  1. Invoice name 2 + B status
  2. Invoice name 1 + A status

That mean, that I want order all record not only status, and always display last status

  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题