Как создать чистый URL для страницы по умолчанию в Yii2 urlManager - PullRequest
0 голосов
/ 27 июня 2018

Мои правила индекса, как показано ниже:

[
    'pattern' => 'page/<page:\d+>',
    'route' => 'site/index',
],

это работает, но в пагинации самая яркая страница - example/page/1, я изменяю правила, как показано ниже:

[
    'pattern' => 'page/<page:\d+>',
    'route' => 'site/index',
    'defaults' => ['page' => 1],
],

Теперь первая страница стала example.com/page.

Как написать правила, чтобы первая страница в пагинации показывалась как example.com?

1 Ответ

0 голосов
/ 27 июня 2018

В соответствии с вашим вопросом в сочетании с вашими комментариями, я предлагаю вам дополнительно добавить правило для пустого шаблона URL-адреса, т.е. для URL-адреса только с доменом, которое направлено на ваш defaultRoute со значением параметра $page по умолчанию .

'rules' => [
    [
        'pattern' => '',
        'route' => 'site/index',
        'defaults' => ['page' => 1],
    ],
    [
        'pattern' => 'page/<page:\d+>',
        'route' => 'site/index',
    ],
],

Затем в действии контроллера вы можете проверить, работает ли это правило URL следующим образом:

<code>public function actionIndex($page)
{
    echo '<pre>';
    echo 'site / index / $page ' . print_r($page, true);
    echo '
'; выход; }

Также обратите внимание, что вы можете установить значение по умолчанию в объявлении метода вашего действия контроллера следующим образом:

<code>public function actionIndex($page = 1)
{
    echo '<pre>';
    echo 'site / index / $page ' . print_r($page, true);
    echo '
'; выход; }

Что позволит вам упростить вашу конфигурацию следующим образом:

'rules' => [
    [
        'pattern' => '',
        'route' => 'site/index',
    ],
    [
        'pattern' => 'page/<page:\d+>',
        'route' => 'site/index',
    ],
],
...