Виджет LinkPager в Yii 2 генерирует двойной? из-за правила маршрута

Я сделал систему нумерации страниц и использую LinkPager виджет, однако это генерирует ссылки с ?? в начале вместо ? как это должно.

Похоже, это из-за моего правила UrlManager:

'foo/<name:[0-9a-zA-Z\-]+>.<some_id:\d+>/?' => 'foo/index',

Мне нужно включить это ? в конце или он не может разрешить страницу с косой чертой.

Вот как я звоню LinkPager:

LinkPager::widget(['pagination' => $pagination, 'options' => ['class' => 'clearfix']]);

куда $pagination очевидно, пагинация пример.

Есть ли способ, которым я могу остановить это, включая двойные знаки вопроса?

0

Решение

Проблема в этой части правила URL: /?, Вы не можете указать косую черту таким образом, регулярное выражение неверно и находится за пределами шаблона. Также вы не можете сделать это необязательным.

Если вы хотите использовать косую черту, измените объявление правила на расширенную версию и задайте косую черту как suffix как это:

[
'pattern' => 'foo/<name:[0-9a-zA-Z\-]+>.<some_id:\d+>',
'route' => 'foo/index',
'suffix' => '/',
],

Узнайте больше об альтернативном формате указания правил URL в соответствующий раздел официальной документации.

Также проверьте это вопрос.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]