2011-10-21 1 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分離のために、ビューでモデルを使用するべきではありません。あなたはのデータをAppController::beforeFilterに取り込んで、すべてのページでそれを行い、ビューに出力することができます。あるいは、requestActionを参照してください。

+0

ありがとうございます。私は問題を解決した。 – Vizualni

関連する問題