【问题标题】:How to create pager in Yii2?Yii2如何创建寻呼机?
【发布时间】:2014-06-13 17:09:40
【问题描述】:

我正在搜索如何使用 LinkPage 小部件在 Yii2 中创建寻呼机。

有什么例子吗?我是 Yii 的新手,所以任何帮助都会很好。

【问题讨论】:

    标签: php pager yii2


    【解决方案1】:

    很简单

    $dataProvider = new ActiveDataProvider([
        'query' => User::find(),
        'pagination' => array('pageSize' => 50),
    ]);
    
    echo \yii\widgets\LinkPager::widget([
        'pagination'=>$dataProvider->pagination,
    ]);
    

    或者如果你不使用 dataProvider 你应该使用这个:

    $query = User::find();
    $pagination = new Pagination(['totalCount' => $query->count(), 'pageSize'=>30]);
    
    echo \yii\widgets\LinkPager::widget([
        'pagination' => $pagination,
    ]);
    

    【讨论】:

    • 嗨,Alex - 在第二个示例中,您在哪里提供 pageSize。谢谢。
    • @Alex 在第二个例子中不应该是'pagination' => $pagination 吗?
    • 只是提示:如果您使用 GridView 列出实体行,则使用数据提供程序代码就足够了,小部件会自行添加分页器 html。
    【解决方案2】:

    在控制器中:

    function actionIndex()
    {
        $query = Article::find()->where(['status' => 1]);
        $countQuery = clone $query;
        $pages = new Pagination(['totalCount' => $countQuery->count()]);
        $models = $query->offset($pages->offset)
            ->limit($pages->limit)
            ->all();
    
        return $this->render('index', [
             'models' => $models,
             'pages' => $pages,
        ]);
    }
    

    在视图文件中:

    foreach ($models as $model) {
        // display $model here
    }
    
    // display pagination
    echo LinkPager::widget([
        'pagination' => $pages,
    ]);
    

    【讨论】:

      【解决方案3】:

      下面添加分页太简单了,

      我们只需要添加控制器,

      $dataProvider = new ActiveDataProvider([
          'query' => Post::find(),
          'pagination' => [
              'pageSize' => 20,
          ],
      ]);
      

      Yii2 会在索引页上带来分页, https://yii2-framework.readthedocs.io/en/stable/guide/output-data-widgets/

      【讨论】:

        【解决方案4】:

        在你的控制器中

        $searchModel = new CourseModuleMasterSearch();   
        
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
        
        $dataProvider->pagination = ['pageSize' => 20];//add this line
        

        【讨论】:

          猜你喜欢
          • 2019-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-18
          相关资源
          最近更新 更多