如何仅使用模型在 cakephp 中创建导航?
标题说明了一切。我将拥有如下所示的导航,它是从数据库动态创建的。
<ul>
<li><a href='controller/view/1'>1</li>
<li><a href='controller/view/2'>2</li>
<li><a href='controller/view/3'>3</li>
</ul>
除活动页面外,每个页面上的内容都应该相同(逐页,我的意思是每个控制器上)。这是我第一次使用 cakephp。
这是我的元素文件:
<ul id="left-navigation">
<?php
App::import('Model','Godina');
$navigacija = $this->Godina->find('all');
foreach($navigacija as $nav){
echo '<li>' . $this->html->link($nav['Godina'] ['godina'],array('controller'=>'godina','action'=>'program',$nav['Godina']['godina'])
) . '</li>';
}
?>
这就是我收到的错误。
Fatal error: Call to a member function find() on a non-object in /Applications/MAMP/htdocs/cakephp/app/View/Elements/godineNavigacija.ctp on line 4
由于我对 cakephp 核心的了解很低,所以它不起作用。 谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
App::import
只是加载文件,就像 PHP 的include
一样,它不会实例化对象。所以$this->Godina
不存在。您可以这样做:为了正确的 MVC 分离,您不应该在视图中使用模型。您可以在
AppController::beforeFilter
中获取并设置
数据,因此它会在每个页面上执行此操作,然后在视图中输出。或者,查看requestAction
。App::import
just loads the file, like PHP'sinclude
, it does not instantiate an object. So$this->Godina
does not exist. You can do this:For proper MVC separation, you should not use models in the view though. You can fetch and
set
the data inAppController::beforeFilter
, so it does it on every page, then output in the view. Alternatively, look intorequestAction
.