CakePHP 2.x如何在beforeRender()或更早版本中确定控制器中的视图路径?

时间:2016-11-15 02:36:13

标签: cakephp cakephp-2.0 cakephp-2.3 cakephp-2.1

我需要确定我的控制器方法将在用于提供视图之前使用哪个应用程序路径。我正在使用主题,但我也有许多非主题的视图文件。我正在根据域名切换我的主题(2个域指向相同的Cake安装),但需要在我的主题中排除非主题视图。

这听起来可能令人困惑。如果访问的URL没有与之关联的主题视图,则会发生以下情况:

  

domainA.com/examples/index将使用app / View / Layouts中的布局呈现视图app / View / Examples / index.ctp

     

domainB.com/examples/index将呈现视图app / View / Examples / index.ctp但是来自app / View / Themed / MyTheme / Layouts的布局

这是因为“MyTheme”主题不包含此控制器 - 方法对的视图文件(这是故意的)。所以我想建立以下内容:

  

domainB.com/examples/index继续呈现视图app / View / Examples / index.ctp但INSTEAD具有来自app / View / Layouts的布局

当然,当且仅当“MyTheme”目录结构中没有视图文件时,才会发生这种情况。

1 个答案:

答案 0 :(得分:0)

我认为这就是你要找的$this->View->viewPath

您可以在任何控制器回调功能或操作中使用它。