Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii CListView对来自另一个表的数据进行排序_Yii_Date Sorting - Fatal编程技术网

Yii CListView对来自另一个表的数据进行排序

Yii CListView对来自另一个表的数据进行排序,yii,date-sorting,Yii,Date Sorting,我有一个存储角色信息的表。在该表中,我有两个字段存储来自其他表的ID 表一:id、rname、pname、idtwo、idthree 表二:id、twoname 表三:id,threename 我的ClistView显示rname、pname、twoname和threename 有了这个论坛的帮助,我可以使用CListView并显示表2和表3中的名称 我现在想做的是创建一个视图,其中信息按twoname排序,数据按threename排序 我的行动指数是: public function acti

我有一个存储角色信息的表。在该表中,我有两个字段存储来自其他表的ID

表一:id、rname、pname、idtwo、idthree

表二:id、twoname

表三:id,threename

我的ClistView显示rname、pname、twoname和threename

有了这个论坛的帮助,我可以使用CListView并显示表2和表3中的名称

我现在想做的是创建一个视图,其中信息按twoname排序,数据按threename排序

我的行动指数是:

public function actionIndex() {
$dataProvider = new CActiveDataProvider('Staffroleprofile');
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
my_view.php是:

<h1>List of SRP's</h1>
<?php 
$dataProvider->sort->defaultOrder='rname ASC'; 
?>

<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>    
上面给出了从表1中按rname排序的数据。我如何指定我希望数据按表2或表3中的数据排序

亲切问候,

e25taki

如果model2和model3分别是Staffroleprofile中表2和表3的关系,请将其添加到代码中

$dataProvider = new CActiveDataProvider('Staffroleprofile');
$criteria=new CDbCriteria;
$criteria->together=true;
$criteria->with=array('model2','model3');
$dataProvider->criteria=$criteria;
$dataProvider->sort->defaultOrder='model2.twoname ASC';

CDbCriteria::together指定是否应使用联接运行查询。如果设置为false,则在需要关系的情况下为每条记录运行其他查询。要了解更多详细信息,请访问API页面和

all good now,我需要的代码是:

$dataProvider = new CActiveDataProvider('Staffroleprofile');
$criteria=new CDbCriteria;
$criteria->together=true;
$criteria->with=array('sitename','businessname');
$dataProvider->criteria=$criteria;
$dataProvider->sort->defaultOrder='sitename.site ASC';
$this->render('index_bysite', array(
        'dataProvider' => $dataProvider,
));
因此,从Staffrleprofile模型中获取记录的ba句柄,然后添加排序条件,在本例中,它基于一个关系。 谢谢大家的帮助。在我的Yii学习冒险中又迈出了一小步

干杯


e25taki

表2和表3有型号吗?有,我有。我通过Gii为所有表格创建了模型。为e25takiHello topher干杯,在模型1中,我有关系“sitename”=>arrayself::Attributes\u TO“Acdsite”、“idsite”、“businessname”=>arrayself::Attributes\u TO“Business”、“idbusiness”,在我的actionIndex\u by Site中,我添加了以下代码: