2015-01-22 4 views
0

Я использовал CArrayDataProvider в модели в поле зрения, данные поступают правильно. Но я застреваю во время поиска, пожалуйста, сообщите мне, как я должен это делать? Ниже мой код: я написал в модели:пользовательский Yii Поиск в dataProvider

 public function search() {    
     $containerObj = new DRackspace;   
     $containerData = array();  
     $containerArr = $containerObj->getContainerList(); 
     foreach ($containerArr as $cont) {  
      $containerData[] = $cont->name;  
     }  

     return $dataProvider = new CArrayDataProvider($containerData, array( 
      'id' => 'name',  
      'pagination' => array( 
       'pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['page_size']),  
      ),  
     ));  
    }  

My view code: 

     $this->widget('bootstrap.widgets.TbGridView', array(    
     'id' => 'CreateCloudContainerForm-grid',   
     'dataProvider' => $model->search(),  
     //'filter' => $model,  
     'emptyText' => Yii::t('b.CloudFiles', 'No Container found'), 
     'columns' => array( 
      array( 
       "type" => "html",`enter code here` 
       'name' => 'container', 
       "header" => Yii::t('b.cloudFiles', 'Container'),  
       'value' => '$data', 
      ), 
+0

Я думаю, что вы использовали неправильные переменный в поставщике данных в TbGridView. – Rishabh

ответ

0

Yii 1.1: Использование фильтров с CGridView и CArrayDataProvider

http://www.yiiframework.com/wiki/232/using-filters-with-cgridview-nd-carraydataprovider/

+0

Привет, спасибо за быстрый ответ. Данная ссылка очень помогает, но когда я ищу, я потерял значение поиска из поля ввода. У вас есть ключ .. – manish

+0

Я думаю, что вы поставили код в модели вместо контроллера –

+0

Да .. Я хочу использовать модель, поскольку я опубликовал функцию поиска, которая была из моей модели. В любом случае спасибо от контроллера его работы. – manish

0

в функции поиска:

public function searchNew() { 

    $criteria = new CDbCriteria; 
    $criteria->compare('t.status', '1'); 
    $criteria->compare('t.role', '2'); 
    $records =array(); 
    $data = User::model()->findAll($criteria); 
    foreach ($data as $d) {  
     $details = array('id'=>$d->id); 
     $records[] = (object) $details; 
     } 

    return new CArrayDataProvider($records, array('pagination' => true)); 
} 

В действии контроллера:

public function action() { 
    $model = new User('searchNew'); 

    $this->renderPartial('view', array(
     'model' => $model, 
    )); exit; 
} 

В видовой сетке:

'dataProvider' => $model->searchNew(), 
'columns' => array(
    array(
     'name' => 'name', 
     'value' => '$data->name', 
    ), 
Смежные вопросы