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