2016-04-25 19:58:11 3163次浏览 1条回答 0 悬赏 10 金钱

开始的代码是

$searchModel = new postSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

return $this->render('index', [
    'searchModel' => $searchModel,
    'dataProvider' => $dataProvider,
]);

现在打算用自定义的Pagination分页, 因为视图中不想用默认GridView::widget中的分页

$searchModel = new postSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
      
$data = Post::find();
$pages = new Pagination([
    'totalCount'=>$data->count(),
    'pageSize'=>'2'
]);
  
return $this->render('index', [
    'searchModel' => $searchModel,
    'dataProvider' => $dataProvider,
    'pages'=>$pages
]);

请问第二段代码中重复算了两次全部数据(虽然可以实现分页), 如何让利用$dataProvider在Pagination进行分页呢,求大神

  • 回答于 2016-04-26 13:18 举报

    你的postSearch model的search方法中,数据是ActiveDataProvider提供的,这个本身就提供分页机制,如果想要单独配置,像下面这样修改就好了。

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
        'pagination' => [
            'pageSize' => 20,
       
        ],
    ]);
    
    3 条回复
    回复于 2016-04-26 13:41 回复

    你这个在PostSearch的model中做配置, 这样弄了就只能在视图中用GridView::widget中的分页呢,不够自定义,我要的是,数据由ActiveDataProvider,单是分页还是自己弄<?= LinkPager::widget(['pagination' => $pages]); ?>在视图中

    我的目的是模糊查找模型后后的dataProvider如何自定义分页,不和GridView::widget混在一起

    回复于 2016-11-10 10:48 回复

    你好,请问你知道怎么解决这个问题了吗?不用girdview但是还是要用DataProvider

    回复于 2016-12-21 16:49 回复

    你好,请问你的问题解决了吗

您需要登录后才可以回答。登录 | 立即注册
dmodai
经理

dmodai

注册时间:2016-04-16
最后登录:2016-08-19
在线时长:9小时43分
  • 粉丝4
  • 金钱560
  • 威望40
  • 积分1050

热门问题