在YII2中的ArrayDataProvider列表中搜索

时间:2015-07-23 05:15:35

标签: php yii2 yii2-basic-app

我使用下面的代码在yii2中生成列表

控制器代码

$data = [['id'=>1, 'name'=>'name1'],
['id'=>2, 'name'=>'name2'],
['id'=>3, 'name'=>'name3'],
['id'=>4, 'name'=>'name4'],
['id'=>5, 'name'=>'name5'],
['id'=>6, 'name'=>'name6'],]
$provider = new ArrayDataProvider([
            'allModels' => $data,
            'pagination' => [
                'pageSize' => 5,
            ],
            'sort' => [
                'attributes' => ['id', 'name'],
            ],
        ]);
$lists = $provider->getModels();
return $this->render('list', [                
                'provider'  => $provider,
                'lists'  => $lists,              
            ]);

查看代码

foreach($lists as $list){
.....
}

分页

\yii\widgets\LinkPager::widget([
    'pagination'=>$provider->pagination,
]);

此代码正常运行,但我需要此列表中的搜索或过滤选项 比如name ='name2'搜索

我是yii2框架的新手请为此问题提出任何合适的解决方案

由于

1 个答案:

答案 0 :(得分:1)

ArrayDataProvider仅实现排序。你有两个选择:

  1. 创建dataProvider之前的Fitler数据
  2. 扩展ArrayDataProvider并实施过滤器。