Yii2 создает удобный URL-адрес с параметрами

Привет, мне нужно создать удобный URL-адрес, но при использовании с параметрами он не работает.

Ссылка:

Url::to(['site/index', 'id' => 1]);

адрес выглядит так:

localhost/testApplication/frontend/web/index.php/site/index?id=1

/forntend/config/main.php

'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'enablePrettyUrl' => true,
        //'showScriptName' => false,
        'rules' => [

        ],
    ],

Я хочу, чтобы вывод, как

localhost/testApplication/frontend/web/index.php/site/index/id/1

и после этого, как получить доступ к значению идентификатора в контроллере.


person Santosh Gaikwad    schedule 17.03.2015    source источник
comment
Вы хотите это только для site/index?   -  person arogachev    schedule 17.03.2015
comment
да это только для сайта/индекса   -  person Santosh Gaikwad    schedule 17.03.2015
comment
возможный дубликат управления URL-адресами в Yii 2   -  person Alex    schedule 18.03.2015


Ответы (2)


'rules' => [
  'site/index/id/<id:\d+>' => 'site/index'
  //'site/index/<id:\d+>' => 'site/index' Better solution
  //'<controller>/<action>/<id:\d+>' => '<controller>/<action>' Will be applied for all controllers and actions
],

Документ о маршрутизации.

И после вашего действия:

public function actionIndex($id)
{
  ...
}
person Timothée Planchais    schedule 17.03.2015
comment
как написать правило для более чем одного параметра? - person Santosh Gaikwad; 17.03.2015
comment
любое правило типа site/index/*=›site/index - person Santosh Gaikwad; 17.03.2015

Это действительно странно, для меня использование параметра «id» всегда показывает ошибки, мне нужно было изменить параметр на «user_id», но в других частях кода я мог бы использовать, действительно не знаю почему, но попробуйте переименовать параметр.

person Luiz Rossi    schedule 15.04.2021