Php Yii CGridView不显示默认过滤器
我试图用Yii呈现CGridView小部件,尽管表是正确的,但它不包括过滤器输入 视图中我的小部件代码如下所示:Php Yii CGridView不显示默认过滤器,php,yii,cgridview,Php,Yii,Cgridview,我试图用Yii呈现CGridView小部件,尽管表是正确的,但它不包括过滤器输入 视图中我的小部件代码如下所示: <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'awesomeGrid', 'dataProvider'=>$model->search(), 'enableSorting'=>true, 'filter'=>$model, 'columns'=>array
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'awesomeGrid',
'dataProvider'=>$model->search(),
'enableSorting'=>true,
'filter'=>$model,
'columns'=>array(
/*array('name'=>'Check',
'value'=>'CHtml::checkBox("name",true)',
'type'=>'raw',
'htmlOptions'=>array('width'=>5),
),*/
array(
'header'=>'Prueba_Columna',
'name'=>'OBJECT_TYPE',
'value'=>'$data->OBJECT_TYPE',
'filter'=>$model->getFilter(),
'type' => 'raw'),
)
));
?>
<div id="awesomeGrid" class="grid-view">
<div class="summary">Displaying 1-20 of 2432 results.</div>
<table class="items">
<thead>
<tr>
<th id="awesomeGrid_c0"><a class="sort-link" href="/apps/project_name/web/index.php/security/index?ObjectsList_sort=OBJECT_TYPE">Prueba_Columna</a></th></tr>
<tr class="filters">
<td></td></tr>
</thead>
<tbody>
<tr class="odd">
<td>VIEW</td></tr>
<tr class="even">
<td>VIEW</td></tr>
</table>
</div>
和我的控制器:
public function actionIndex()
{
$appUsersModel = new AppUsers(); //Instance the model object
$objectsListModel = new ObjectsList('search');
$objectsUserModel = new ObjectUser();
$appsArray = $this->getApps($appUsersModel);
$projectsArray = $this->getProjects($objectsListModel);
$usersArray = array(array());
$typesArray = array(array());
$objectsArray = array(array());
// renders the view file 'protected/views/security/index.php'
// using the default layout 'protected/views/layouts/main.php'
$this->render('index',
array('appsArray' => $appsArray,
'usersArray' => $usersArray,
'projectsArray' => $projectsArray,
'typesArray' => $typesArray,
'objectsArray' => $objectsArray,
'appUsersModel' => $appUsersModel,
'objectsUserModel' => $objectsUserModel,
'model'=>$objectsListModel,
)
);
}
当我转到firefox上的开发者工具并检查HTML是否正确时,我会看到以下内容:
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'awesomeGrid',
'dataProvider'=>$model->search(),
'enableSorting'=>true,
'filter'=>$model,
'columns'=>array(
/*array('name'=>'Check',
'value'=>'CHtml::checkBox("name",true)',
'type'=>'raw',
'htmlOptions'=>array('width'=>5),
),*/
array(
'header'=>'Prueba_Columna',
'name'=>'OBJECT_TYPE',
'value'=>'$data->OBJECT_TYPE',
'filter'=>$model->getFilter(),
'type' => 'raw'),
)
));
?>
<div id="awesomeGrid" class="grid-view">
<div class="summary">Displaying 1-20 of 2432 results.</div>
<table class="items">
<thead>
<tr>
<th id="awesomeGrid_c0"><a class="sort-link" href="/apps/project_name/web/index.php/security/index?ObjectsList_sort=OBJECT_TYPE">Prueba_Columna</a></th></tr>
<tr class="filters">
<td></td></tr>
</thead>
<tbody>
<tr class="odd">
<td>VIEW</td></tr>
<tr class="even">
<td>VIEW</td></tr>
</table>
</div>
显示2432个结果中的1-20个。
看法
看法
如您所见,有
标记,但不存在要筛选的输入标记。然后,我认为这个小部件是正确配置的,但是可能有一些错误使得输入没有显示出来
有人能帮我吗
谢谢。过滤器应该是
数组。您是否检查了getFilter()
的输出。它似乎不返回数组
。这就是为什么你没有得到过滤器。尝试查看您的函数的输出
最后我得到了一个解决方案,正如我告诉您的,我正在使用Yii,但我没有使用Gii生成模型,因此rules函数为空
我在该函数上定义了一个返回数组,使字段能够被搜索
代码是:
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('OBJECT_TYPE', 'safe', 'on'=>'search'),
);
}
谢谢大家的回复。谢谢大家的回复。输出为:CActiveDataProvider对象。数组中应该包含哪些类型的值?感谢您在该字段中所需的内容表示选择框??转换所需数组中的对象??或者请使用函数输出和所需的过滤器下拉列表更新您的问题