2014-06-26 65 views
0

我想排序在cListview ..這對我來說完全正常罰款排序屬性來自同一張表..我想知道是否可以根據相關表中的字段進行排序.. 例如..在yii的視圖排序關係表

<?php $this->widget('zii.widgets.CListView', array(
     'dataProvider'=>$dataProvider, 
     'itemView'=>'_viewnew', 
     'sortableAttributes'=>array(
     'Code' 

       ), 
)); ?> 

工作正常.. 但我想從另一個表的字段進行排序這樣的..

<?php $this->widget('zii.widgets.CListView', array(
     'dataProvider'=>$dataProvider, 
     'itemView'=>'_viewnew', 
     'sortableAttributes'=>array(
     'relation_name.Make' 

       ), 
)); ?> 

這是我迄今爲止!並且不會在我的控制器

public function actionIndex() 
    { 
     $dataProvider=new CActiveDataProvider('table1'); 
     $criteria=new CDbCriteria; 
     $criteria->together=true; 
     $criteria->with=array('PMake'); 
     $dataProvider->criteria=$criteria; 
     $dataProvider->sort->defaultOrder='PMake.Make ASC'; 

     $this->render('index',array(
      'dataProvider'=>$dataProvider, 
     )); 
    } 

在我看來,工作

在我的模型

/** 
    * @return array relational rules. 
    */ 
    public function relations() 
    { 
     // NOTE: you may need to adjust the relation name and the related 
     // class name for the relations automatically generated below. 
     return array(
      'PMake'=>array(self::BELONGS_TO, 'PMake', 'ID'), 
     ); 
    } 

這裏的排序是什麼,我試圖去上班。

<?php 
      $this->widget('zii.widgets.CListView', array(
       'dataProvider'=>$dataProvider, 
       'itemView'=>'_view', 
       'sortableAttributes' => array('PMake.Make'=>'Make'), 
       'loadingCssClass' => '', //remove loading icon 
      )); 
     ?> 

回答

0

試一試在控制器

public function actionIndex() 
     { 
      $dataProvider=new CActiveDataProvider('table1'); 
      $criteria=new CDbCriteria; 
      $criteria->together=true; 
      $criteria->with=array('PMake'); 
      //Made changes here 
      $criteria->order = 'PMake.Make ASC' 
      $dataProvider->criteria=$criteria; 

      $this->render('index',array(
       'dataProvider'=>$dataProvider, 
      )); 
     } 
+0

對不起,更新的問題。 – user2636556

+0

檢查更改 - 謝謝 –

+0

仍然無法點擊視圖中的排序方式 – user2636556