2011-09-03 65 views
1

我正在一个网站上工作,我必须在侧边栏上使用动态导航菜单。
我在AppControllerbeforeFilter()方法中设置了变量并使用这些变量为侧边栏创建了一个元素。
我有3个布局,并在所有3种布局中都使用了这个元素。CakePhp中的动态导航菜单

我对这个实现不满意,因为对于每个请求AppController中的beforeFilter()方法都必须被调用。
它也不符合MVC模式。

有没有更好的方法来实现这一目标?

+0

它有多动态? –

+1

你应该使用beforeRender()来做到这一点,不过! – mark

+0

侧边栏导航菜单包含类别,每个类别都有一个或多个子类别,所有类别都必须从数据库中动态检索。共有15个类别和60个子类别。 – Akarsh

回答

1

通常,我会选择让Category模型处理(子)类别的检索。然后,您可以从beforeRender中调用相应的操作(以防止加载数据,而您从未达到渲染点的数据),并在必要时将适当的环境值传递给模型。

在旁注中,我通常将TreeBehaviour应用于Category模型。你可能已经这样做了,但是我无法从你的问题中解决这个问题。

此致