2014-10-30 56 views
1

如何在用戶表格視圖中使用用戶角色過濾記錄?如何在用戶網格視圖中使用用戶角色進行篩選?

我正在使用yii-user擴展。我能夠顯示用戶在用戶/管理gridview上的角色,但我可以使用這個過濾器?這是我的觀點:

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'user-grid', 
    'dataProvider'=>$model->search(), 
    'filter'=>$model, 
    'columns'=>array(
     array(
      'name' => 'id', 
      'type'=>'raw', 
      'value' => 'CHtml::link(CHtml::encode($data->id),array("admin/update","id"=>$data->id))', 
     ), 
     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'=>'superuser', 
      'value'=>'User::itemAlias("AdminStatus",$data->superuser)', 
      'filter'=>User::itemAlias("AdminStatus"), 
     ),*/ 
     array(
      'name'=>'status', 
      'value'=>'User::itemAlias("UserStatus",$data->status)', 
      'filter' => User::itemAlias("UserStatus"), 
     ), 
     array(
      //'name'=>'assignments', 
      'header'=>Rights::t('core', 'Roles'), 
      'type'=>'raw', 
      'value'=>function($data) { 
             $roles = Rights::getAssignedRoles($data->id); 
             foreach($roles as $role){ 
              $user_role=$role->name; 
             } 
             return $user_role; 
            } 
     ), 
     array(
      'class'=>'CButtonColumn', 
      'template'=>'{view}{delete}' 
     ), 
    ), 
)); 

回答

1

您可以添加過濾器象下面這樣:

array(
     //'name'=>'assignments', 
     'header'=>Rights::t('core', 'Roles'), 
     'type'=>'raw', 
     'filter'=>CHtml::listData(Rights::model()->findAll(),'id','name'), //*** 
     'value'=>function($data) { 
            $roles = Rights::getAssignedRoles($data->id); 
            foreach($roles as $role){ 
             $user_role=$role->name; 
            } 
            return $user_role; 
           } 
    ), 

我認爲Rights是一個模型,並在其持有的角色與idname

由於我表示在***的評論中,Yii會生成一個下拉菜單作爲過濾器,顯示角色名稱作爲選項值和角色ID作爲選項值。

+0

不工作。獲取這個錯誤「調用未定義的方法Rights :: model()」 – 2014-10-31 16:16:57

+0

@SRana正如我所說的,我認爲你有一個名爲'Rights'的模型。請用您自己的型號替換它 – 2014-10-31 16:29:47

+0

我不知道哪種型號可以做到這一點。因爲我使用Yii權限模塊 – 2014-10-31 17:11:49

相關問題