在模块中如何渲染父级应用的视图?

我的程序结构如下:




├─components

├─config

├─controllers

├─extensions

├─migrations

├─models

├─modules

│  └─photo

│      ├─components

│      ├─controllers

│      ├─models

│      └─views

│          ├─default

│          ├─layouts

│          └─model

└─views

    ├─layouts

    └─site

        └─pages



我想在photo模块中渲染/views/site/下的视图… 请问我应该怎么做?

好吧, 我已经找到解决方法了…

$this->render(’//viewfile’);

看了一下源码:




public function resolveViewFile($viewName,$viewPath,$basePath,$moduleViewPath=null)

	{

		if(empty($viewName))

			return false;


		if($moduleViewPath===null)

			$moduleViewPath=$basePath;


		if(($renderer=Yii::app()->getViewRenderer())!==null)

			$extension=$renderer->fileExtension;

		else

			$extension='.php';

		if($viewName[0]==='/')

		{

			if(strncmp($viewName,'//',2)===0)

				$viewFile=$basePath.$viewName;

			else

				$viewFile=$moduleViewPath.$viewName;

		}

		else if(strpos($viewName,'.'))

			$viewFile=Yii::getPathOfAlias($viewName);

		else

			$viewFile=$viewPath.DIRECTORY_SEPARATOR.$viewName;


		if(is_file($viewFile.$extension))

			return Yii::app()->findLocalizedFile($viewFile.$extension);

		else if($extension!=='.php' && is_file($viewFile.'.php'))

			return Yii::app()->findLocalizedFile($viewFile.'.php');

		else

			return false;

	}



@qiang 自己的帖子自己可以评分 :lol:

好吧, 我已经找到解决方法了…

$this->render(’//viewfile’);

:lol:

双斜线//是从应用程序开始

单斜线/ 从当前模块开始

另外还可以使用别名: ‘application.views.xxx’;

                 'photo.views.xxx'

Yii::app()->findLocalizedFile($viewFile.$extension);这段话预示你还可以使用国际化

views

|–zh_cn

|------整儿原始文件夹内容拷贝这里

|–xx(语言文化编码)

|------另一套语言的视图集

非常感谢 :rolleyes: