2

HAS_MANY 関係を持つ yii (CGridView) の列をソートする必要があります。誰でもこれについて私を助けることができます。

これが私の 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 に答える