PHP Symfony2 knp菜单包:使用foreach生成子项会引发非法的偏移类型异常

时间:2015-01-31 13:51:53

标签: php menu foreach symfony-2.5 knpmenubundle

我们正在开发一个使用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()]就可以了。我的坏。

0 个答案:

没有答案