Yii:如何更改渲染功能的默认路径?

时间:2014-09-01 01:34:58

标签: php yii

在Yii中,当您在窗口小部件或控制器中使用渲染时,您只需要将文件名(不带.php)作为参数,如下所示:

$this->render('forum', array('data'=>$data));

例如当我在Class中使用此函数扩展CWidget时,Yii将尝试在/ protected / components / views中找到forum.php

如何将此默认路径更改为其他位置?对于我的所有widget类(所有类扩展CWidget)?如果我只想改变一些小部件的路径怎么办?

2 个答案:

答案 0 :(得分:1)

您需要覆盖 CWidget 类的 getViewPath 方法

例如: -

class CMyWidget extends CWidget{

// Returns the directory containing the view files for this widget.

public function getViewPath($checkTheme=false){

// this method does the task of finding the view files containing directory.
// so override it

}

// This method will look for the view under the widget's  getViewPath viewPath.
public function getViewFile($viewName)
    {
// override it
}

    }

最后在创建小部件时,您必须扩展 CMyWidget 类而不是 CWidget

答案 1 :(得分:1)

您只需执行$this->render('//path/forum', array('data'=>$data));,其中//指向主视图目录,通常为protected/views

您还可以使用带点符号的别名路径:

$this->render('application.myviews.test'); // would render protected/myviews/test.php
$this->render('webroot.test'); // would render htdocs/test.php