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>