2017-09-07 45 views
0

我使用yii2基本應用程序並使用過濾和搜索的gridview。 我想爲每個10條記錄分頁。我能做什麼?爲gridview設置分頁在yii2基本應用程序中有過濾器

我知道在dataprovider中添加分頁,但如何將此添加到我的功能?

請幫幫我。 這對我很重要。 我做很多搜索,但無法找到該

控制器解決方案:

public function actionIndex() 
{ 
    $searchModel = new ContactSearch(); 
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

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

模型\ contactsearch.php

<?php 
namespace app\models; 

use app\models\Contact; 
use yii\base\Model; 
use yii\data\ActiveDataProvider; 

class ContactSearch extends Contact { 
public function rules() { 
    return [ 

     [['f_name', 'l_name', 'phone_number', 'Mobile_number'], 'safe'], 
    ]; 
} 

public function scenarios() { 
    return Model::scenarios(); 
} 

public function search($params) { 
    $query = Contact::find(); 

    $dataProvider = new ActiveDataProvider([ 
     'query' => $query, 
     'sort' => [ 
    'defaultOrder' => [ 
     'l_name' => SORT_DESC, 
    ], 

], 
    ]); 

    if (!(($this->load($params) && $this->validate()))) { 
     return $dataProvider; 
    } 

    $query->andFilterWhere(['like', 'f_name', $this->f_name]) 
      ->andFilterWhere(['like', 'l_name', $this->l_name]) 
      ->andFilterWhere(['like', 'phone_number', $this->phone_number]) 
      ->andFilterWhere(['like', 'Mobile_number', $this->Mobile_number]); 

      //->andorderBy('id asc'); 

    return $dataProvider; 

} 
} 

?> 

視圖

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel'=>$searchModel, 
    'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 

     'f_name', 
     'l_name', 
     'phone_number', 
     'Mobile_number', 

     ['class' => 'yii\grid\ActionColumn'], 
    ], 
]); ?> 

回答

1

要自定義記錄量的GridView

$dataProvider = new ActiveDataProvider([ 
    'query' => $query, 
//show 10 items per page 
'pagination' => [ 
    'pagesize' => 10, 
], 
    'sort' => [ 
'defaultOrder' => [ 
    'l_name' => SORT_DESC, 
], 

其他選項是: stackoverflow link

0

在控制器:

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, 
    ]); 
} 
In view file: 

foreach ($models as $model) { 
    // display $model here 
} 

// display pagination 
echo LinkPager::widget([ 
    'pagination' => $pages, 
]); 
+0

我不明白你的代碼。什麼是文章,狀態,克隆? – tara

+0

文章是我的模態名稱,狀態是列名稱,基於此獲取結果。克隆是預定義的函數,用於克隆類,對象或查詢等。 – Sucharitha

相關問題