Yii2 не создает хороший URL-параметр

Я использую менеджер URL в Yii2 для создания хороших URL-адресов, которые работают, если в URL-адресе нет параметров.

Я установил следующий конфиг:

urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ],
        ],

С помощью Url::to(array('crtl/action', 'paramx' => 'computer:net', 'paramy' => 'abc')) приводит к следующему URL:

HTTP: // локального / Crtl / действие paramx = компьютер: чистые и paramy= а

Но мне нужно следующее:

HTTP: // локальный / Crtl / действие / paramx / Компьютер: сеть / paramy / а

Как можно настроить параметры URL-адреса на?

2 ответа

Если ваш аргумент является числом, тогда правило менеджера URL будет:

'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>'

Если ваш аргумент является текстовым, то правилом менеджера URL будет:

'<controller:\w+>/<action:\w+>/<name:\w+>' => '<controller>/<action>'

В случае, если мы объявляем симпатичный URL, если нам нужен результат с последующим '/', тогда нам также нужно определить правила URL для маршрутизации.

    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
                    '<controller:\w+>/<action:\w+>/<id:\w+>/<ids:\w+>' => '<controller>/<action>',
                ],
            ],

Таким образом, мы можем назвать эту маршрутизацию как:

     <a href="<?php  echo \yii\helpers\Url::base(true)."/site/testing/5/8"?>">
     <a href="<?php echo \yii\helpers\Url::to(['site/testing','paramx'=>'x1','paramy'=>'y1'])?>">

В первом случае мы создали URL, как мы хотим. Во втором случае мы использовали url: to для маршрутизации, как мы видим, мы указали paramX и param y в параметре.

Для обоих это будет результат,

      public function actionTesting() {
        print_r(Yii::$app->request->getQueryParams());
        die();

    }//will get the query params that we had sent

    Output will be:Array ( [paramx] => x1 [paramy] => y1 ) ;

Так как вы спрашиваете, это не шаблон маршрутизации URL для yii2, это предпочтительный способ для yii2

Другие вопросы по тегам