Я пытаюсь отобразить виджет CGridView с Yii и, несмотря на правильность таблицы, он не включает вход фильтра.Yii CGridView не отображает фильтры по умолчанию
Мой код виджета в представлении заключается в следующем:
<?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'),
)
));
?>
Моя модель:
public function search(){
$criteria=new CDbCriteria;
$criteria->select='OBJECT_TYPE';
return new CActiveDataProvider($this,array(
'criteria'=>$criteria,
'pagination'=>array('pageSize'=>20)
));
}
public function getFilter(){
$criteria=new CDbCriteria;
$criteria->compare('OBJECT_TYPE',$this->OBJECT_TYPE,true);
return new CActiveDataProvider($this,array(
'criteria'=>$criteria,
));
}
И мой контроллер:
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. Я вижу следующее:
<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>
Как вы можете видеть, есть отметка <tr class="filters"><td></td></tr>
, но не существует входной метки внутри фильтра. Тогда я думаю, что виджет настроен правильно, но, возможно, есть некоторая ошибка, из-за чего вход не отображается.
Может ли кто-нибудь мне помочь?
спасибо.
Спасибо за ваш ответ. Выход: CActiveDataProvider Объект. Какие значения должны иметь массив? Спасибо – Maik
что вам нужно в этом поле означает, что выбрать поле ?? преобразовать объект в желаемый массив? или, пожалуйста, обновите свой вопрос с помощью функции вывода и требуемого выпадающего экрана фильтра – user1234