我可以在哪里保存我的块在cakephp目录结构,将包含我所有的菜单链接


Where can i save my block in cakephp directory structure that will contain all my menu links?

我想在CakePHP中创建我的自定义主题。我在哪里可以保存我的块在CakePHP目录结构,将包含我所有的菜单链接?如何从View'Themed'MyTheme'Layouts'default.ctp获取文件?

要么使用元素(如果导航条在每个视图上显示),要么使用视图块(如果导航条只在某些视图上显示)。

在默认情况下。CTP文件你只会做…

echo $this->element('navbar');

显示视图/元素/导航栏。ctp到视图/布局/默认。CTP(如果使用默认布局)。

要访问:View'Themed'MyTheme'Layouts'default.ctp,在(Cake 2.1+)中,您必须像这样告诉Cake您想使用哪个主题:

public $theme = 'MyTheme';
// or override in an action:
$this->theme = 'MyTheme';

:

$this->layout = 'default';

将参考您的View'Themed'MyTheme'Layouts'default.ctp

如果cake在MyTheme中找不到请求的视图文件,它将返回app/View来找到它。

通过这种方式,您可以根据需要重写主题中的视图。

所以如果你把你的菜单在View/Elements/menu.ctp,你所有的主题将能够访问它。如果您想为MyTheme覆盖它,只需在MyTheme中创建一个Elements/menu.ctp

如果我没记错的话,这个过程与以前版本的蛋糕略有不同。

把它放在/App/Views/Layouts下。如果您想在任何地方使用它,调用它default.ctp,它将自动被使用。否则,给它一个不同的名字,然后在控制器中do:

public function some_action() {
    $this->layout = 'mylayout';
}

这将显示some_action使用您的布局,而不是默认的