Model view controller Yii2:从主应用程序渲染模块视图

Model view controller Yii2:从主应用程序渲染模块视图,model-view-controller,yii2,yii2-module,Model View Controller,Yii2,Yii2 Module,假设模块遵循方法中所述的目录结构,Yii2应用程序(不是模块控制器)如何呈现模块提供的视图?您可以将视图指定为: 路径别名(例如“@app/views/site/index”);应用程序内的绝对路径(例如“//site/index”):视图名称以双斜杠开头。实际视图文件将在应用程序的视图路径下查找 模块内的绝对路径(例如“/site/index”):视图名称以单斜杠开头。实际视图文件将在$module的视图路径下查找 相对路径(例如“索引”):实际视图文件将在$viewPath下查找 因此,

假设模块遵循方法中所述的目录结构,Yii2应用程序(不是模块控制器)如何呈现模块提供的视图?您可以将视图指定为:

  • 路径别名(例如“@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';
这将使用主应用程序的应用布局渲染视图。要使用模块的布局,请在操作中添加以下内容:

return $this->render('@app/modules/forum/views/default/index');
$this->layout = '@app/modules/forum/views/layouts/main';
这假定在
论坛
模块中查看
default/index
和布局
main

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

  • 路径别名(例如“@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';
这将使用主应用程序的应用布局渲染视图。要使用模块的布局,请在操作中添加以下内容:

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

这假设在
论坛
模块中查看
default/index
和布局
main

我想添加一个重要且非常有用的事实:通过composer安装的Yi2扩展自动获得自己的
@vendorname/extensionname
别名。我想添加一个重要且非常有用的事实:Yi2通过composer安装的扩展自动获得自己的
@vendorname/extensionname
别名。