2014-02-22 38 views
3

我想要做的是將兩個動態導航菜單放入CakePHP佈局(default.ctp)中。主菜單應該有多個級別(具有下拉功能)。二級菜單是顯示左邊欄中主菜單下拉內容的菜單。佈局中的CakePHP動態菜單內容

我讀過CakePHP文檔,但我很困惑如何在佈局中適合這些菜單。我知道,你在一個視圖層4個不同部位(如http://book.cakephp.org/2.0/en/views.html記錄):

  • 意見
  • 元素
  • 佈局
  • 助手

但隨着知識,我有現在,我認爲這些零件都不能用來滿足我的需求。導航菜單是僅在佈局中加載ONES的部分,因此它不是元素或助手。那麼最佳做法是什麼...

  • ...在哪裏創建菜單樹?
  • ...哪裏/如何在佈局文件中回顯它?

有人可以清除我的問題嗎?提前致謝! ;)

回答

2

您可以創建在元素文件夾菜單樹 例如...

element/top_menu.ctp 

元/ side_menu.ctp

現在您可以在佈局這些菜單在dyanamic您的要求條件

例如#

if(#user is admin) 
{ 
    echo $this->Element('top_menu'); 
} 
else if(# user is registered) 
{ 
    echo $this->Element('side_menu'); 
} 
else 
{ 
    echo $this->Element('top_menu'); 
    echo $this->Element('side_menu'); 
} 

這裏把你的條件..你可以使用菜單作爲您的要求從Elemnts文件夾......

+1

好吧,這很明顯!但我怎樣才能在top_menu.ctp中動態生成菜單?我想從數據庫中獲取數據,所以我想我不應該在該.ctp文件中連接我的數據庫?如果我這樣做,適當的MVC工作方式是完全搞砸了...... – Sam

+2

從控制器的操作方法和設置值中的數據庫中檢索您的菜單值$ this-> set('menu',$ menu_names);並通過使用foreach循環檢索值在top_menu.ctp中顯示這些值。 –