2

我正在执行以下操作:

 <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>',
               ),
4

3 回答 3

12

你应该尝试两件事

要获取绝对 URL,而不是相对于当前控制器或操作,请添加前导“斜杠”,例如:

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

你还应该确保你没有做一些愚蠢的事情,比如忘记使用echo :) 有时会发生在我身上......

    <li><a href='<? echo Yii::app()->controller->createUrl('sources'); ?>'>sources</a></li>
于 2012-07-15T13:37:13.040 回答
3

首先,您为什么还要尝试从视图访问控制器?这是毫无意义的,它违背了所有的模式。

此外,您可以使用Yii::app()->createUrl(). 此外,您可能会从阅读有关如何使用此功能的文档中受益。

该值'sources'不适合任何路由模式..尝试以下操作:

  • Yii::app()->createUrl('sources/view');
  • Yii::app()->createUrl('sources/foobar');.
于 2012-07-14T17:21:02.763 回答
1

你忘记了回声:

    <a href="<?php 
      echo Yii::app()->createUrl("[/][CONTROLLER][/]ACTION", array("view"=>"VIEW")); 
    ?>">Link name</a>
于 2014-05-26T09:08:50.953 回答