Почему Url::toRoute() с параметром добавляет знак вопроса?

Имеем Yii2 с таким роутингом:

'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName'  => false,
        'enableStrictParsing'  => false,
        'rules'           => [
           …
          'p'=>'product/index',
          'p/<add:\w+>/<id:(\d|-)+>'=>'product/<add>',
          'p/<action:\w+>'=>'product/<action>',

          '<action>'=>'site/<action>',
        ],
      ],


Таким образом ссылки, вида https://site.url/p/add/25 ведут на форму добавления товара в категорию в ID 25
( контроллер ProductController, метод actionAdd c аргументом $id = 25 ).

Это отлично работает.

В коде вьюхи добавляю ссылку на добавление товара, допустим

Url::toRoute(['product/add', 'id'=>$categoryId])

Так вот почему-то ссылка оказывается с параметром за знаком вопроса:
https://site.url/p/add?id=25

А надо —https://site.url/p/add/25

Как сделать как надо?
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы