我正在视图中执行以下操作:
<li><a href='<? Yii::app()->controller->createUrl('sources'); ?>'>sources</a></li>
但是,"sources"没有附加到路径,相反,代码只是将路径返回到当前控制器。
有人能告诉我为什么会这样吗?代码在模块中。
我的url规则如下:
'rules'=>array(
'<controller:w+>/<id:d+>'=>'<controller>/view',
'<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>',
'<controller:w+>/<action:w+>'=>'<controller>/<action>',
),
你应该尝试两件事
要获得一个绝对的URL,而不是相对于当前控制器或操作,请添加一个前导的"斜杠",如:
Yii::app()->createUrl('/sources/view');
你还应该确保你没有做一些愚蠢的事情,比如忘记使用echo:)有时会发生在我身上。。。
<li><a href='<? echo Yii::app()->controller->createUrl('sources'); ?>'>sources</a></li>
首先,为什么要尝试从视图访问控制器?这毫无意义,而且违背了所有的模式。
此外,您还可以使用Yii::app()->createUrl()
创建URL。此外,您可能会从阅读有关如何使用此功能的文档中受益。
值'sources'
不适合任何路由模式。。尝试以下操作:
Yii::app()->createUrl('sources/view');
Yii::app()->createUrl('sources/foobar');
您忘记了echo:
<a href="<?php
echo Yii::app()->createUrl("[/][CONTROLLER][/]ACTION", array("view"=>"VIEW"));
?>">Link name</a>