У меня довольно сложный запрос, который я использую CSqlDataProvider с:Сортировка CSqlDataProvider в Yii
$sql = "
SELECT c.id AS id,
c.enabled AS enabled,
s.store_name AS store_name,
s.store_url AS store_url,
c.verified AS verified,
r.rating_total AS rating
FROM compete_settings c
LEFT JOIN stores s
ON c.compete_id = s.id
LEFT JOIN (
(SELECT store_id, rating_total FROM amazon_sellers)
UNION
(SELECT store_id, rating_total FROM ebay_sellers)
) AS r
ON c.compete_id = r.store_id
WHERE c.store_id = :store_id
";
$itemCount = Yii::app()->db->createCommand("SELECT COUNT(id) FROM compete_settings WHERE store_id = $store_id")->queryScalar();
return new CSqlDataProvider($sql, array(
'totalItemCount' => $itemCount,
'params' => array(
'store_id' => $store_id,
),
'sort' => array(
'attributes' => array ('enabled, store_name, rating'),
'defaultOrder' => array('store_name'=>false)
),
'pagination' => array('pageSize' => Yii::app()->user->getState('pageSize_cs', Yii::app()->params['defaultPageSize']),),
));
Запрос работает. Однако столбцы не сортируются.
Я позаботился о том, чтобы следовать Yii CGridview sorting with CSqlDataProvider, но они по-прежнему не являются щелчками заголовков столбцов.
Вот мои колонки массивы:
'columns' => array(
array(
'header' => 'Enabled',
'type'=>'raw',
'name'=>'enabled',
'htmlOptions'=>array('class'=>'enabled-column'),
'value' => 'CHtml::checkbox("", $data["enabled"], array("id"=>"c{$data[\'id\']}", "class"=>"enable-switch"))',
),
array(
'header' => 'Name',
'htmlOptions' => array('class' => 'account-name-column'),
'type' => 'raw',
'name'=>'store_name',
),
array(
'header' => 'Store Rating',
'name'=>'rating',
),
),
Помощь?):