对于php版本5.3。这条线很好用。
<?php echo CController::createUrl('/Reload/data')?>
但是当我将我的php更新为5.4时。我正在
非静态方法CController :: createUrl()不应该静态调用,假设$ this来自不兼容的上下文
我需要做些什么才能让它在yii中运行?
答案 0 :(得分:0)
您需要访问控制器对象。假设您在视图中工作,可以使用$this
访问当前控制器对象:
<?php $this->createUrl('/Reload/data')?>
在小部件中,您可以使用$this->controller
:
<?php $this->controller->createUrl('/Reload/data')?>
如果没有,您可以使用Yii::app()->controller
:
<?php Yii::app()->controller->createUrl('/Reload/data')?>
答案 1 :(得分:0)
由于您在静态上下文中调用非静态方法,因此即使在PHP 5.3中也无法确定此行如何工作。 CController :: createUrl()实际上引用了$ this ...
无论如何,回到您的要点:在Yii1中,您还可以使用CApplication::createUrl()管理您的URL,并且您的代码中的任何位置都可以使用Application对象。