Yii, createUrl не работает должным образом

Я делаю следующее в представлении:

 <li><a href='<? Yii::app()->controller->createUrl('sources'); ?>'>sources</a></li>

Однако "источники" не добавляются к пути, вместо этого код просто возвращает путь к текущему контроллеру.

Кто-нибудь может подсказать, почему это может меня? Код находится в модуле.

Мои правила URL следующие:

'rules'=>array(
 '<controller:\w+>/<id:\d+>'=>'<controller>/view',
 '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
 '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
               ),

3 ответа

Решение

Вы должны попробовать 2 вещи

Чтобы получить абсолютный URL-адрес, не относящийся к текущему контроллеру или действию, добавьте начальный слеш, например:

    Yii::app()->createUrl('/sources/view');

Вы также должны убедиться, что вы не делаете глупостей, например, забыли использовать эхо:), что иногда случается со мной...

    <li><a href='<? echo Yii::app()->controller->createUrl('sources'); ?>'>sources</a></li>

Прежде всего, почему вы даже пытаетесь получить доступ к контроллеру из вида? Это бессмысленно и идет вразрез со всеми закономерностями.

Кроме того, вы можете создавать URL с Yii::app()->createUrl(), Также вам может быть полезно прочитать документацию о том, как использовать эту функцию.

Значение 'sources' не подходит ни к одному из шаблонов маршрутизации.. попробуйте следующее:

  • Yii::app()->createUrl('sources/view');
  • Yii::app()->createUrl('sources/foobar');,

Вы забыли эхо:

    <a href="<?php 
      echo Yii::app()->createUrl("[/][CONTROLLER][/]ACTION", array("view"=>"VIEW")); 
    ?>">Link name</a>
Другие вопросы по тегам