default.ctp从控制器cakephp获取信息
我目前正在尝试使用cakephp在php中创建自己的小型CMS。因此,它应该很容易修改网站。首先,我不是一个网络程序员,这只是业余时间 我有一个控制器按钮,一个按钮可以有多个类别。 因此,我试图将其加载到default.ctp中,以便为每个页面加载此菜单 default.ctp代码:default.ctp从控制器cakephp获取信息,php,cakephp,cakephp-2.0,cakephp-2.1,Php,Cakephp,Cakephp 2.0,Cakephp 2.1,我目前正在尝试使用cakephp在php中创建自己的小型CMS。因此,它应该很容易修改网站。首先,我不是一个网络程序员,这只是业余时间 我有一个控制器按钮,一个按钮可以有多个类别。 因此,我试图将其加载到default.ctp中,以便为每个页面加载此菜单 default.ctp代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> <?php __('eg');
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
<?php __('eg'); ?>
<?php echo $title_for_layout; ?>
</title>
<?php
echo $this->Html->css('cake.generic.style');
echo $scripts_for_layout;
?>
</head>
<body>
<div class="wrapper">
<div class="header">
<h1>Electro Geers Bvba</h1>
</div>
<div id="navMenu">
<?php
foreach ($buttons as $button) {
echo '<ul>';
echo '<li><a href="' . h($button['Button']['naam']) . '.html">' . h($button['Button']['naam']) . '</a>';
if (!empty($button['Category'])) {
echo'<ul>';
foreach ($button['Category'] as $category) {
echo '<li><a href="' . $category['naam'] . '.html">' . $category['naam'] . '</a></li>';
}
echo'</ul>';
}
echo '</li>';
echo '</ul>';
}
?>
<br class="clearFloat" />
</div>
<div class="contents">
<h3>Sectionale poorten en Hekwerken</h3>
<?php echo $content_for_layout; ?>
</div>
<div class="footer">
Copyright © 2012 - 2017
</div>
</div>
</body>
警告(2):为AppController中的foreach()[APP\View\Layouts\default.ctp,第20行]提供的参数无效:
$this->loadModel('Button');
$buttons = $this->Button->find('all');
$this->set(compact('buttons'));
这将导致每个页面查询按钮
表并将结果传递给视图,然后可通过$buttons
变量访问该视图
如果您打算通过数据库处理菜单,我强烈建议您以一种或另一种形式查看缓存—在每个页面上强制执行这样的数据库调用可能不是最好的主意
有很多选项,但我看到的和喜欢的一个是将菜单保留在XML文件中-然后,无论何时更新/编辑/添加/删除按钮,都可以更新XML文件。在AppController中:
$this->loadModel('Button');
$buttons = $this->Button->find('all');
$this->set(compact('buttons'));
这将导致每个页面查询按钮
表并将结果传递给视图,然后可通过$buttons
变量访问该视图
如果您打算通过数据库处理菜单,我强烈建议您以一种或另一种形式查看缓存—在每个页面上强制执行这样的数据库调用可能不是最好的主意
有很多选项,但我看到并喜欢的一个是将菜单保留在XML文件中,然后,无论何时更新/编辑/添加/删除按钮,都可以更新XML文件。您也可以将div id=“navMenu”放入元素中,然后使用requestAction。请参阅Cake开发者之一的链接
您也可以将div id=“navMenu”放入元素中,然后使用requestAction。请参阅Cake开发者之一的链接
+1投票-我喜欢你的答案胜过我的-我完全忘记了这一点。+1投票-我喜欢你的答案胜过我的-我完全忘记了这一点。powtac:在AppController的beforeFilter()中,请确保所有控制器在beforeFilter操作中调用parent::beforeFilter()。谢谢!这就是我搜索的内容。powtac:在AppController的beforeFilter()中,请确保所有控制器在beforeFilter操作中调用parent::beforeFilter()。谢谢!这就是我一直在寻找的。