0

我想在 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的actionview

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 中?

4

1 回答 1

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 生成的管理操作和管理视图,您会发现上面的代码相同。

于 2013-08-24T00:01:00.320 回答