0

假设模块遵循文档中概述的目录结构, Yii2 应用程序控制器(不是模块控制器)如何呈现模块提供的视图?

4

1 回答 1

4

如方法render()中所述,您可以将视图指定为:

  • 路径别名(例如“@app/views/site/index”);应用程序内的绝对路径(例如“//site/index”):视图名称以双斜杠开头。实际的视图文件将在应用程序的视图路径下查找。
  • 模块内的绝对路径(例如“/site/index”):视图名称以单斜杠开头。实际的视图文件将在 $module 的视图路径下查找。
  • 相对路径(例如“索引”):实际的视图文件将在 $viewPath 下查找。

因此,对于您提到的模块,请在操作中执行此操作:

return $this->render('@app/modules/forum/views/default/index');

这将使用主应用程序的应用布局呈现视图。要使用模块的布局,请在操作中添加以下内容:

$this->layout = '@app/modules/forum/views/layouts/main';

这假定模块中的视图default/index和布局。mainforum

于 2016-09-03T07:47:28.570 回答