2011-09-03 68 views
1

我正在一個網站上工作,我必須在側邊欄上使用動態導航菜單。
我在AppControllerbeforeFilter()方法中設置了變量並使用這些變量爲側邊欄創建了一個元素。
我有3個佈局,並在所有3種佈局中都使用了這個元素。CakePhp中的動態導航菜單

我對這個實現不滿意,因爲對於每個請求AppController中的beforeFilter()方法都必須被調用。
它也不符合MVC模式。

有沒有更好的方法來實現這一目標?

+0

它有多動態? –

+1

你應該使用beforeRender()來做到這一點,不過! – mark

+0

側邊欄導航菜單包含類別,每個類別都有一個或多個子類別,所有類別都必須從數據庫中動態檢索。共有15個類別和60個子類別。 – Akarsh

回答

1

通常,我會選擇讓Category模型處理(子)類別的檢索。然後,您可以從beforeRender中調用相應的操作(以防止加載數據,而您從未達到渲染點的數據),並在必要時將適當的環境值傳遞給模型。

在旁註中,我通常將TreeBehaviour應用於Category模型。你可能已經這樣做了,但是我無法從你的問題中解決這個問題。

此致