Yii リスト ビューで並べ替えを実装しようとしています。リスト ビューで provider_favourite と service_request という名前の 2 つのテーブルを結合しました。また、両方のテーブルのフィールドと内容がリスト ビューに表示されます。しかし、並べ替えは、service_request テーブルではなく、provider_favourite テーブルでのみ機能します。service_request テーブルからフィールドを並べ替えるにはどうすればよいですか? ソートには csort を使用しています。CGridビューも試しました。しかし、グリッドビューでも同じ問題が発生しています..
次のコードを使用して参加しています
$criteria = new CDbCriteria;
$criteria->select = 'favourite_notes,favourite, favourite_added_date,max_budget,preferred_location,service_name';
$criteria->join = 'LEFT JOIN service_request AS s ON service_request_id = favourite';
$criteria->condition = 'favourite_type = 1';
$sort=new CSort('ProviderFavourite');
// $sort->defaultOrder='s.max_budget ';
$sort->applyOrder($criteria);
$sort->attributes = array(
'max_budget' => 'service_request.max_budget',
'service_name' => 'service_request.service_name',
'favourite_added_date'
);
$type = 2;
$data = new CActiveDataProvider('ProviderFavourite', array('criteria' => $criteria, 'pagination' => array('pageSize' => 4),'sort'=>$sort
));
$this->renderPartial('favourites', array(
'ModelInstance' => ProviderFavourite::model()->findAll($criteria),
'dataProvider' => $data, 'type' => $type, 'sort'=>$sort,
));
また、リストビューで並べ替え可能な属性を提供しています
$this->widget('zii.widgets.CListView', array('dataProvider'=>$dataProvider,'itemView'=>'index_1',
'id'=>'request',
'template' => ' {items}{pager}',
'sortableAttributes'=>array('favourite_notes','max_budget','service_name')
));
詳細が必要な場合は、提供します。前もって感謝します