【问题标题】:How to sort cgridview column which have HAS_MANY relation?如何对具有 HAS_MANY 关系的 cgridview 列进行排序?
【发布时间】:2013-01-14 07:39:22
【问题描述】:

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

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

【问题讨论】:

    标签: sorting yii cgridview


    【解决方案1】:
    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',
                    ),
                    '*',
                ),
            ),
        ));
    

    【讨论】:

    • 穆达萨!感谢您的回答。但我认为它是一对一的关系,而不是有很多关系。
    • 是的,它是一对一的关系,让我检查一下我是否可以帮助有很多关系
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多