2016-03-06 103 views
0

商業模式:Yii按關係排列HAS_MANY

一張發票可以有多個狀態(草稿,進行中,發送,刪除)。

在CGridView我想最後的狀態

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

在發票模型顯示發票我得聲明關係:

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

在CGridView數據顯示是正確的,但是當我試圖通過InvoiceStatus->name訂購

我得到:

(BY ASC) 
  1. 發票名稱+第一狀態
  2. 發票名稱2 +第一狀態

(BY DESC)

  1. 發票名稱+最後的狀態
  2. 發票名稱2 +最後的狀態

我希望得到:

(BY ASC)

  1. 發票名稱+ A狀態
  2. 發票名稱2 + B狀態

(BY DESC)

  1. 發票名稱2 + B狀態
  2. 發票名稱1 + A狀態

意思,我想訂購的所有記錄,不僅地位,並始終顯示上次的狀態

回答