1

Q:ユーザーグリッドビューでユーザーの役割を表示するにはどうすればよいですか?

説明:ユーザーと権限の拡張機能を使用しています。ユーザー/管理者のグリッドビューでユーザーの役割を示したいと思います。ユーザーの役割でフィルタリングします。どうやって?

これが私の見解です

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'user-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        array(
            'name' => 'username',
            'type'=>'raw',
            'value' => 'CHtml::link(UHtml::markSearch($data,"username"),array("admin/view","id"=>$data->id))',
        ),
        array(
            'name'=>'email',
            'type'=>'raw',
            'value'=>'CHtml::link(UHtml::markSearch($data,"email"), "mailto:".$data->email)',
        ),
        'create_at',
        'lastvisit_at',
        array(
            'name'=>'status',
            'value'=>'User::itemAlias("UserStatus",$data->status)',
            'filter' => User::itemAlias("UserStatus"),
        ),
        array(
            'class'=>'CButtonColumn',
        ),
    ),
));

これは私のコントローラーです

public function actionIndex()
    {
        $rasdataProvider = new RAssignmentDataProvider();
        $dataProvider=new CActiveDataProvider('User', array(
            'criteria'=>array(
                'condition'=>'status>'.User::STATUS_BANNED,
            ),

            'pagination'=>array(
                'pageSize'=>Yii::app()->controller->module->user_page_size,
            ),
        ));

        $this->render('index',array(
            'dataProvider'=>$dataProvider,
            'rasdataProvider'=>$rasdataProvider,
        ));
    }

アップデート#1

これはuser.phpの関係です

    public function relations()
    {
        $relations = Yii::app()->getModule('user')->relations;
        if (!isset($relations['profile']))
            $relations['profile'] = array(self::HAS_ONE, 'Profile', 'user_id');
        return $relations;
    }
4

2 に答える 2

2

profile.role を追加してみてください

'columns'=>array(
    array(
        'name' => 'username',
        'type'=>'raw',
        'value' => 'CHtml::link(UHtml::markSearch($data,"username"),array("admin/view","id"=>$data->id))',
    ),
    'profile.role', // through relation `profile`
于 2012-09-10T06:12:30.967 に答える
0

以下の例でうまくいくはずです。これを列配列にコピーします。

array(
    'name'=>'assignments',
    'header'=>Rights::t('core', 'Roles'),
    'type'=>'raw',
    'htmlOptions'=>array('class'=>'role-column'),
    'value'=>'$data->getAssignmentsText(CAuthItem::TYPE_ROLE)',
),

これは rights/view/assignment/view.php ファイルから取得されます。

于 2013-11-11T12:02:00.760 に答える