Yii PHP Добавить пагинацию на мой сайт - PullRequest
0 голосов
/ 01 мая 2018

Я хотел бы добавить нумерацию страниц на свой сайт, но я очень новичок в Yii и хотел бы посоветовать.

Это страница, которую я ищу, чтобы добавить нумерацию страниц: https://gocar2.com/newsproducts/center

Как видите, у меня есть несколько ячеек для каждой авто новости, и теперь я разрешаю показывать только 18 новостей на странице. Я хотел бы добавить сюда нумерацию страниц, чтобы я мог просматривать больше новостей.

И вот что я попробовал:

newscontroller.php

<?php

use yii\data\Pagination;

class NewsproductsController extends Controller
{
public function actionCentermore()
{   

    $criteria = new CDbCriteria;
    $criteria->addCondition("approvedStatus = '1'");
    $criteria->order = 'createdDate DESC';
    $product = Newsproducts::model()->findAll($criteria);

    $Pagination = new Pagination([
        'defaultPageSize' => 15,
        'totalCount' => $product->count(),
    ]);

    $products = $product->offset($Pagination->offset)
    ->limit($Pagination->limit)
    ->all();

    $this->renderPartial('centermore',compact('products', 'Pagination'));

}
}

newsview.php отобразит все верхнее меню и баннеры и отобразит centermore.php

$this->renderPartial('centermore', compact('products', 'Pagination'));

centermore.php (просмотр новостных ячеек), затем я добавил виджет LinkPager внизу.

LinkPager::widget(['Pagination' => $Pagination])

И, конечно, есть ошибка, класс LinkPager не найден. Может кто-нибудь дать мне совет, как решить эту / реализовать пейджинг?

1 Ответ

0 голосов
/ 01 мая 2018

В Yii2 нумерация страниц обычно выполняется через DataProvider, посмотрите на:
Руководство Yii2: поставщики данных , особенно ActiveDataProvider:

use yii\data\ActiveDataProvider;

$query = Post::find()->where(['status' => 1]);

$provider = new ActiveDataProvider([
    'query' => $query,
    'pagination' => [
        'pageSize' => 10,
    ],
    'sort' => [
        'defaultOrder' => [
            'created_at' => SORT_DESC,
            'title' => SORT_ASC, 
        ]
    ],
]);

// returns an array of Post objects
$posts = $provider->getModels();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...