1

我使用下面的代码在 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' search

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

谢谢

4

1 回答 1

1

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

  1. 创建 dataProvider 之前的 Fitler 数据
  2. 扩展 ArrayDataProvider 并实现过滤器。
于 2015-07-23T08:28:13.790 回答