我们正在开发一个使用Symfony2的旅游网站。我目前卡在菜单上。当前设计是一个多级菜单,如下所示:continents-> countries -> regions.
每个国家/地区按国家和地区分组的国家/地区子菜单。我正在使用Knp菜单包。我想使用foreach循环动态生成子菜单,因为我不想手动生成每个菜单项。为此,我需要使用字符串变量作为数组键但这不起作用...实体Continent和Country有一个返回getSlug().
的toString方法显然,使用$menu['south-america']
有效但不是{ {1}}
使用foreach循环遍历Continent对象slugs。
以下是错误消息:
在渲染模板
期间抛出了异常$menu[$continent]
以下是我的菜单构建器中的代码:
("Warning: Illegal offset type in isset or empty in ***********\vendor
\knplabs\knp-menu\src\Knp\Menu\MenuItem.php line 346") in SiteBundle::layout.html.twig at line 11.
感谢您的建议。
找到解决方案:
我发布这个问题可能有点太快了,因为解决方案在发布后几分钟就跳到了我身边(经过数小时的测试) 似乎对象$ country和$ continent不会自动转换为字符串,就像我预期的那样,当它们用作数组键时。 使用$ menu [$ continent-> getSlug()]就可以了。我的坏。