2014-04-28 9 views
14

मैं लिंक पेज विजेट का उपयोग कर Yii2 में पेजर बनाने का तरीका खोज रहा था।Yii2 में पेजर कैसे बनाएं?

क्या कोई उदाहरण है? मैं वाई में नया हूं, इसलिए कोई मदद अच्छी होगी।

उत्तर

39

यह सरल है

$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, 
]); 
+0

ने यह मदद की? – Alex

+0

हाय एलेक्स - आप अपने दूसरे उदाहरण में पेजसाइज कहां प्रदान करते हैं। धन्यवाद। – Pawan

+1

@Alex को दूसरे उदाहरण में यह 'पेजिनेशन' => $ पेजिनेशन नहीं होना चाहिए? –

4

नियंत्रक में:

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, 
]);