我正在尝试在cListView中进行排序..对于我来说,使用来自同一个表的排序属性非常好。我想知道它是否可以根据相关表中的字段进行排序。 例如......
<?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'
),
)); ?>
这是我到目前为止所拥有的!!并且不起作用
在我的模特中
/**
* @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'),
);
}
在我的控制器中
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,
));
}
在我看来,这就是我想要开始工作的方式。
<?php
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
'sortableAttributes' => array('PMake.Make'=>'Make'),
'loadingCssClass' => '', //remove loading icon
));
?>
答案 0 :(得分: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,
));
}