我需要在yii(CGridView)中对具有HAS_MANY关系的列进行排序。任何人都可以帮助我。
这是我的CGRIDVIEW专栏:
array(
'name' => 'emp_cat_id',
'type' => 'Raw',
'value' => '$data->getProjectContactClasses($data)',
'htmlOptions' => array('width' => '350'),
),
这是我在模型中获取ProjectContactClasses的函数
public function getProjectContactClasses($model)
{
$classes = "";
if (!empty($model->emp_cat_id))
{
$criteria = new CDbCriteria();
$criteria->addInCondition("id", array($model->emp_cat_id));
$model = LaborClassification::model()->findAll($criteria);
if (count($model) > 0)
{
foreach ($model as $row)
{
$classes .= $row->classification . ", ";
}
$classes = substr($classes, 0, -2);
}
}
return $classes;
}
这是关系
'project_contacts' => array(self::HAS_MANY, 'ProjectContact', 'project_id'),
如果有人需要更多解释,请告诉我。
答案 0 :(得分:2)
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'sort'=>array(
'attributes'=>array(
'emp_cat_id.labor_lassification'=>array(
'asc'=>'emp_cat_id.labor_lassification',
'desc'=>'emp_cat_id.labor_lassification DESC',
),
'*',
),
),
));