Страницы

Поиск по вопросам

среда, 19 июня 2019 г.

ЧПУ постраничной навигации в Yii2

Есть у меня на главной странице в контроллере sitecontroller экшен
public function actionIndex() { $searchModel = new CourseSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }
CourseSearch
public function search($params) { $query = Course::find()->active()->with(['category'])->orderBy(['id' => SORT_DESC]);
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'pageSize' => 2, ],
]); .............
Который выводит список постов через вьюху
$dataProvider, 'layout' => "{items}
{pager}", 'itemView' => '_item', 'emptyText' => 'Ничего не найдено.', 'emptyTextOptions' => [ 'tag' => 'div class="alert alert-danger"' ], 'pager' => [ 'firstPageLabel' => '««', 'lastPageLabel' => '»»', 'nextPageLabel' => false, 'prevPageLabel' => false, 'maxButtonCount' => 5, ], ]); ?>
И постраничная навигация когда переходишь например на вторую страницу выдает вот такой вид:
mysite.ru/?page=2&per-page=2
Вот как сделать чтобы страницы выводились mysite.ru/page-2
'urlManager' => [ 'class' => 'yii\web\UrlManager', // Disable index.php 'showScriptName' => false, // Disable r= routes 'enablePrettyUrl' => true, 'rules' => [ 'page--' => 'site/index', '' => 'site/index', '' => 'site/', '' => 'site/category', '/' => 'site/view',


Ответ

Открываем config/web.php и добавляем в components:
'components' => [ 'urlManager' => [ 'class' => 'yii\web\UrlManager', // Disable index.php 'showScriptName' => false, // Disable r= routes 'enablePrettyUrl' => true, 'rules' => [ '//page-' => '/', '/' => '/', ], //Далее какой-то код. ],
Код рабочий, если возникнут какие-то проблемы, выложите config/web.php и мы поможем.

Комментариев нет:

Отправить комментарий