Yii,createUrl未按预期工作



我正在视图中执行以下操作:

 <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>

最新更新