2

我需要对 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'),

如果有人需要更多解释,请告诉我。

4

1 回答 1

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',
                ),
                '*',
            ),
        ),
    ));
于 2013-01-14T08:06:34.753 回答