2016-01-22 3 views
2

Я все еще разрабатываю и не хочу использовать чистые URL-адреса в своем Yii2 прямо сейчас.Yii2 Загрузочный ярлык navbar без URL-адреса URL-адрес

Я добавил следующий код к расширенному Yii2 проекта навигационной панели About сделать подменю при о:

[ 
    'label' => 'About', 
    'url' => ['/site/about'], 
    'items' => [ 
     ['label' => 'Invoices', 'url' => 'invoices/index'], 
    ] 
], 

Обычно контроллер invoices получает доступ: /?r=invoices из адресной строки клиента. Однако приведенный выше код генерирует /invoices/index, который дает Page not found error, потому что я еще не включил чистые URL-адреса.

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

ответ

4

url значение параметра обрабатывается методом \yii\helpers\Url::to():

  • false (по умолчанию): генерирование относительного URL.
  • true: возвращает абсолютный базовый URL-адрес, схема которого аналогична схеме в \yii\web\UrlManager::hostInfo.
  • строка: генерирование абсолютного URL с указанной схемой (либо http, либо https).

Так что, если вы передаете строку url параметра, он будет рассматриваться как абсолютный URL. Для того, чтобы создать URL для данного маршрута, вам нужно передать массив, то он будет обработан \yii\helpers\Url::toRoute():

'url' => ['invoices/index'], 

Он рассмотрит UrlManager настройки, такие как $enablePrettyUrl.

 Смежные вопросы

  • Нет связанных вопросов^_^