Iam渲染菜单(使用Zend框架)(zend_navigation)
如果页面的值为“myPage”,我正在做的是将页面作为标签 然后iam设置新的URI与页面按预期
$it = new RecursiveIteratorIterator(
$container, RecursiveIteratorIterator::SELF_FIRST);
foreach ($it as &$page) {
$label = $page->label;
if($label = "MyPage"){
$newuri = "mypage.php?stcode=".$stcode."&cde=".$cde;
$page->setUri($newuri);
}
}
在上面的声明中我遇到了错误 “迭代器不能与foreach一起使用”。 我想使用引用,以便基于标签我可以将页面指向新的uri
现在我的问题和菜单中的所有菜单项都获得相同的URI。
答案 0 :(得分:6)
没有& ?默认情况下,对象在PHP中通过引用传递,因此调用setUri应该(理论上)修改原始对象。另请注意,您的if语句正在执行赋值($ label =“MyPage”)而不是比较($ label ==“MyPage”)。
假设$ container是你的Zend Navigation对象,该组件有方法可以使这更容易,所以你应该能够简化你的代码:
$page = $container->findByLabel('MyPage');
$page->setUri("mypage.php?stcode=".$stcode."&cde=".$cde);