Здравствуйте!
Есть несколько вопросов, связанных с постраничной навигацией и выводом записей.
1. Можно ли в Yii2 использовать SqlDataProvider с LinkPager? Т.е. возможен ли вывод записей без ListView и GridView?
Такой вариант не работает. Постраничная навигация не выводится.
Контроллер:$totalCount = Yii::$app->db->createCommand('SELECT COUNT(*) FROM tbl_testimonials')->queryScalar();
$query = 'SELECT * FROM tbl_testimonials';
$dataProvider = new SqlDataProvider([
'sql' => $query,
//'params' => [':status' => 3],
'totalCount' => (int)$totalCount,
'pagination' => [
// количество пунктов на странице
'pageSize' => 2,
]
]);
Представление:<?php
echo \yii\widgets\LinkPager::widget([
'pagination' => $dataProvider->pagination,
'nextPageLabel'=>'вперед →',
'prevPageLabel'=>'← назад'
]); ?>
2. В yii1 можно было сделать, что-то типа:
$criteria=new CDbCriteria();
$result = Yii::app()->db->createCommand("SELECT COUNT(*) as cnt FROM tbl_testimonials");
$count = $result->queryRow();
$pages=new CPagination($count['cnt']);
$pages->pageSize = 10;
$pages->applyLimit($criteria);
$command = Yii::app()->db->createCommand( "SELECT * FROM tbl_testimonials LIMIT :offset, :limit");
$command->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$command->bindValue(':limit', $pages->pageSize);
$testimonials = $command->queryAll();
Дальше, в представлении, записи выводились, без каких либо виджетов. В CLinkPager передавались $pages.
Можно, ли в Yii2 сделать вывод записей подобным образом, без использования AR, ActiveDataProvider и SqlDataProvider?