Gii生成的控制器里面添加分页

作者:谢高升 发布:2017-09-24 浏览:2089次

yii的CURD快速创建增删改查,默认是没有分页的,只需要简单的配置就可以实现完美的分页效果

废话不多说,直接上代码;

//比如我的文章搜索模型postsearch.php只需要添加

   */
    public function search($params)
    {
        $query = PostsModel::find();

        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
            //只需要添加这一句
            'pagination' => [
                'pageSize' => 5,
            ],
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        // grid filtering conditions
        $query->andFilterWhere([
            'id' => $this->id,
            'cat_id' => $this->cat_id,
            'user_id' => $this->user_id,
            'is_valid' => $this->is_valid,
            'created_at' => $this->created_at,
            'updated_at' => $this->updated_at,
        ]);

        $query->andFilterWhere(['like', 'title', $this->title])
            ->andFilterWhere(['like', 'summary', $this->summary])
            ->andFilterWhere(['like', 'content', $this->content])
            ->andFilterWhere(['like', 'label_img', $this->label_img])
            ->andFilterWhere(['like', 'user_name', $this->user_name]);

        return $dataProvider;
    }
}

//上面的代码就可以实现简单的分页效果如下图

image.png


上面的分页效果是有点丑;在稍微修改一下在你的view里面

//只需要加入下面的属性到你的 <?= GridView::widget([ 里面即可

'pager'=>[
            'nextPageLabel' => '下一页',
            'prevPageLabel' => '上一页',
            'maxButtonCount' => 5,
            'lastPageLabel' => '尾页',
        ],

image.png

标签: Gii分页