Symfony1 如何在Symfony中创建动态菜单

Symfony1 如何在Symfony中创建动态菜单,symfony1,menu,Symfony1,Menu,虽然我确实发现PHP Symfony框架在很多方面都很好,但我发现很难为网站创建易于扩展的动态菜单 我想知道其他Symfony开发者是如何处理这个问题的。 我将举一个简单的例子来说明我的问题 如果访问www.fool.com,你会看到他们有一个典型的菜单设置。类别列表,其中一个类别是活动类别,以某种方式用CSS突出显示 在Symfony项目中动态创建此项的好方法是什么。在模块之间传递某种类型的变量。我还没有找到一个优雅的解决方案。一般来说,我只是手动构建一个模块/动作组合数组,我想显示在我的菜单

虽然我确实发现PHP Symfony框架在很多方面都很好,但我发现很难为网站创建易于扩展的动态菜单

我想知道其他Symfony开发者是如何处理这个问题的。 我将举一个简单的例子来说明我的问题

如果访问www.fool.com,你会看到他们有一个典型的菜单设置。类别列表,其中一个类别是活动类别,以某种方式用CSS突出显示


在Symfony项目中动态创建此项的好方法是什么。在模块之间传递某种类型的变量。我还没有找到一个优雅的解决方案。

一般来说,我只是手动构建一个模块/动作组合数组,我想显示在我的菜单中。从动态源(如配置文件或数据库)获取此信息相当容易:

然后,我使用控制器的getActionName和getMethodName方法来确定菜单中的哪个项是当前项:

$this->current = array_search(array($this->getModuleName(), $this->getActionName()), $this->menu);
然后我可以在模板中迭代$menu来构建菜单。我可以将这些项与$current进行比较,以确定是否应该在菜单项的
  • 上设置“current”类


    您给出的愚人网示例有点复杂,因为它是两级的。在这种情况下,您可能希望从数据库中生成菜单树,也许可以利用Propel的嵌套集支持。

    这很有道理,我只是想知道我是否遗漏了什么。
    $this->current = array_search(array($this->getModuleName(), $this->getActionName()), $this->menu);