2011-10-21 40 views
0

標題說所有。我會看到這樣的導航,它是從數據庫動態創建的。如何在僅使用模型的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核心的知識很低,所以它不起作用。 謝謝。

+0

我不確定你的意思。您可以將導航放入佈局或使用元素。 「活躍的」是什麼意思? – JJJ

回答

2

App::import只是加載文件,如PHP的include,它沒有實例化一個對象。所以$this->Godina不存在。你可以這樣做:

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

對於正確的MVC分離,你不應該在視圖中使用模型。您可以獲取並set中的數據AppController::beforeFilter,因此它會在每個頁面上執行,然後在視圖中輸出。或者,查看requestAction

+0

謝謝你的回答。我解決了問題。 – Vizualni

相關問題