CakePHP此->;渲染不加载控制器

CakePHP此->;渲染不加载控制器,cakephp,Cakephp,我有几个视图,在很多地方都有使用。视图相同,但控制器不同,因此我将.ctp文件放在Elements目录中,并在不同的控制器中使用以下代码 $this->render('/Elements/overview'); 但是,我还有一些php代码,需要在每次加载视图时执行。 所以我想在Contollers目录中创建一个名为Elements目录(overviewController.php)中的视图的控制器,但不幸的是,该控制器中的代码没有执行 是有办法做到这一点,还是我完全错了 编辑:根据Da

我有几个视图,在很多地方都有使用。视图相同,但控制器不同,因此我将.ctp文件放在Elements目录中,并在不同的控制器中使用以下代码

$this->render('/Elements/overview'); 
但是,我还有一些php代码,需要在每次加载视图时执行。 所以我想在Contollers目录中创建一个名为Elements目录(overviewController.php)中的视图的控制器,但不幸的是,该控制器中的代码没有执行

是有办法做到这一点,还是我完全错了


编辑:根据Dave的建议,我将overview.ctp文件复制到一个名为Global的新目录中。将控制器重命名为GlobalController.php,将类重命名为GlobalController,并更改了$this->render。但是,视图已加载,我用于渲染视图的控制器已加载,但GlobalController未加载。

在整个视图中使用元素是不正常的。您最好使用实际视图文件。元素是要在视图中使用的较小的代码块

示例:

创建一个“OverviewsController.php”(注意它是PluralController.php)。在其中,创建一个函数:

public function overview() {

}
要访问该功能,请使用url:
www.yourdomain.com/overviews/overview

它的视图文件应该位于
Views/Overviews/overview.ctp

如果您计划在许多地方使用该元素,则可以将其包含在视图中

编辑:

您发布的代码没有问题,但您不需要渲染元素,只需渲染视图即可:

public function anything() {
    $this->render('/Overviews/overview');
}

在整个视图中使用元素是不正常的。您最好使用实际视图文件。元素是要在视图中使用的较小的代码块

示例:

创建一个“OverviewsController.php”(注意它是PluralController.php)。在其中,创建一个函数:

public function overview() {

}
要访问该功能,请使用url:
www.yourdomain.com/overviews/overview

它的视图文件应该位于
Views/Overviews/overview.ctp

如果您计划在许多地方使用该元素,则可以将其包含在视图中

编辑:

您发布的代码没有问题,但您不需要渲染元素,只需渲染视图即可:

public function anything() {
    $this->render('/Overviews/overview');
}

我明白了,我把它用于普通页面。但是,这并不能解决我的问题,我想在不同的控制器上使用多次的视图编辑了答案,包括从不同的操作渲染视图。我明白了,我将其用于普通页面。但是,这并不能解决我的问题,因为我想对不同的控制器多次使用视图,编辑的答案包括从不同的动作渲染视图。