自定义Yii在dataProvider中搜索

时间:2015-01-22 11:00:08

标签: yii

我在模型中使用了CArrayDataProvider,视图数据正常。但是我在搜索过程中遇到困难请告诉我我该怎么办?下面是我的代码: 我写的是模型:

      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',  
            ),   

2 个答案:

答案 0 :(得分:0)

Yii 1.1:使用带有CGridView和CArrayDataProvider的过滤器

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

答案 1 :(得分: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',
    ),