CakePHP/MVC の要点を完全に見逃していないことを確認するために、少しフィードバックが必要です。
私は CakePHP でミニ cms を設計しています - 基本的にはフォト アルバムです。すべてのページに標準の定型的なドロップダウン メニューを用意したいと考えています。当然のことながら、ユーザーがアルバムを削除および追加すると、メニューは動的である必要があります。
私の目標: 反対方向に動くものを構築しますView::actionRequest()
(つまり、view がコントローラーにコールバックする代わりに、コントローラーが設定された変数を View クラスにプッシュしてからレンダリングします)。私の理解では、それView::requestAction()
はあまり優雅ではなく、かなり遅い。
これは、メニュー キーワードを含むテーブルのモデルです。app/Model/ModelItem.php
class MenuItem extends AppModel {
public function buildMainMenu() {
return $this->find('all');
}
}
私はどこでもそれをしたいので、私は呼び出しをAppController
class AppController extends Controller {
public function beforeFilter() {
$this->loadModel('MenuItem');
$this->set('mainMenuItems',$this->MenuItem->buildMainMenu());
}
}
これは、CSS のデフォルト レイアウトの上部にダンプされる要素です - 要素ファイル: app/View/Element/navigation.ctp
- レイアウト:app/View/Element/Layout/default.ctp
<ul id="navigation">
<?php
foreach($mainMenuItems as $item) {
echo "<li>".$item['MenuItem']['name']."</li>";
}
?>
</ul>
最終的に、テーブル内のすべてのアイテムの素敵な箇条書きリストができあがります。私はこれを完全にいじっていますか?私はそれをすべて間違っていますか?何も思いつきません。