1
我有用戶模式 l其中包含一個函數,可以計算每個用戶的平均收入。現在我想要在與getAvgRevenue()函數關聯的列上應用CGridView中的排序。許可證是用戶模型中的關係。如何在模型方法中應用排序在CGridView Yii
這裏是我的代碼,
public class User{
$user_id;
$email;
public function getAvgRevenue(){
$count = 0;
$revenue = 0;
foreach ($this->license as $license){
$revenue += $license->price;
$count++;
}
if($count!= 0){
$averageRevenue = $revenue/$count;
return $averageRevenue;
}
else{
return null;
}
}
}
在控制器
$modelUser = new CActiveDataProvider('User', array(
'sort' => array(
'attributes' => array(
'user_id',
'email',
'averagerevenue'
),
'defaultOrder' => array(
'user_id' => CSort::SORT_ASC,
),
),
));
鑑於
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'user-grid',
'dataProvider' => $modelUser,
'columns' => array(
array(
'header' => 'User ID',
'name' => 'user_id',
),
array(
'header' => 'Email',
'name' => 'email',
),
array(
'header'=>'Average Revenue',
'value'=>'$data->averagerevenue',
),
)
));
?>
排序是適用於USER_ID和電子郵件但平均收入列不可排序。如何在CActiveDataprovider的sort()中指定模型方法 請幫我解決問題。
感謝UR迴應,我已經嘗試過,但它不起作用。沒有拼寫問題。 – 2014-10-02 11:07:11