1

这个问题直接跟随这个其他

我有这个表:组、用户、报告

关系: 组 1 -> N 个用户 ** 和 ** 用户 1 -> N 个报告

我已经在报告模型中有这种关系:

'user' => array(self::BELONGS_TO, 'Users', 'userId'),

这在用户模型中

'group' => array(self::BELONGS_TO, 'Gruppi', 'groupId'),

在报告模型中,我有这个:

$criteria=new CDbCriteria;
$criteria->with = array ('user');

在报告的管理视图中,我使用的是CGridView

我使用 user.group.name 来显示组名,但是如何搜索(通过 DropDown)和排序!?

4

1 回答 1

1

在管理员视图中,我使用的是 user.group.name 而不是 user.group.name

array (
        'name' => 'groupId',
        'value' => '$data->user->group->name',
        'filter' => Chtml::listData( Groups::model()->findAll() ,'id','name')
    ),

在报告模型中,我添加了一个类字段

public $groupId;

在报告规则中

    array('groupId','safe','on'=>'search'),

在报告搜索中

....
$criteria->with = array ('user.group');
....
$criteria->compare('user.groupId',$this->groupId);
....
[in sort array]
'groupId'=>array(
            'asc' =>'group.name',
                'desc'=>'group.name DESC',
 ),

通过这种方式,我可以按组名搜索和排序!

我希望这篇文章对某人有用

于 2012-10-13T13:24:13.123 回答