如何在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核心的了解相当低,所以它不起作用。谢谢。

App::import只是加载文件,就像PHP的include一样,它不实例化对象。所以$this->Godina不存在。你可以这样做:

$Godina = ClassRegistry::init('Godina');
$Godina->find(...);

为了正确的MVC分离,你不应该在视图中使用模型。您可以在AppController::beforeFilter中获取和set数据,因此它在每个页面上执行此操作,然后在视图中输出。或者,查看requestAction

最新更新