我想在yii的权限模块的cgridview中添加过滤器。
这是权利模块的cgridview
<?php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'template'=>"{items}\n{pager}",
'emptyText'=>Rights::t('core', 'No users found.'),
'htmlOptions'=>array('class'=>'grid-view assignment-table'),
//'filter'=>$dataProvider,
'columns'=>array(
array(
'name'=>'name',
'header'=>Rights::t('core', 'Name'),
'type'=>'raw',
'htmlOptions'=>array('class'=>'name-column'),
'value'=>'$data->getAssignmentNameLink()',
'filter'=>'name',
),
array(
'name'=>'assignments',
'header'=>Rights::t('core', 'Roles'),
'type'=>'raw',
'htmlOptions'=>array('class'=>'role-column'),
'value'=>'$data->getAssignmentsText(CAuthItem::TYPE_ROLE)',
),
/*
array(
'name'=>'assignments',
'header'=>Rights::t('core', 'Tasks'),
'type'=>'raw',
'htmlOptions'=>array('class'=>'task-column'),
'value'=>'$data->getAssignmentsText(CAuthItem::TYPE_TASK)',
),
array(
'name'=>'assignments',
'header'=>Rights::t('core', 'Operations'),
'type'=>'raw',
'htmlOptions'=>array('class'=>'operation-column'),
'value'=>'$data->getAssignmentsText(CAuthItem::TYPE_OPERATION)',
),
*/
)
)); ?>
这是assignmentcontroller的动作视图
public function actionView()
{
// Create a data provider for listing the users
$dataProvider = new RAssignmentDataProvider(array(
'pagination'=>array(
'pageSize'=>50,
),
));
// Render the view
$this->render('view', array(
'dataProvider'=>$dataProvider,
));
}
如何在权限模块的cgridview中添加过滤器?
答案 0 :(得分:0)
如果我确切地问你的问题,你试图在CGridView中使用过滤器并且它不起作用。 如果这是你的问题,那么答案是:
在你的行动中
public function actionView()
{
$model=new RAssignmentDataProvider('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['RAssignmentDataProvider']))
$model->attributes=$_GET['RAssignmentDataProvider'];
$this->render('view',array(
'model'=>$model,
));
}
在您的视图中
<?php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$model->search(),
...
?>
这样当您使用过滤器时,它会调用搜索功能并使用过滤后的值更新CGridView
注意:如果您查看由Gii生成的管理员操作和管理员视图,您将找到上面相同的代码。