2010-09-01 163 views
0

荫渲染菜单(使用Zend Framework)(zend_navigation)对象我们如何遍历实现迭代

什么IAM做的是获取页面标签,如果页面的值为“我的空间” 比则IAM与页面如预期

$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); 
}   

}

设置新的URI在上面的语句IAM得到一个错误 “迭代器不能用foreach参照使用”。 我想使用参考,以便基于标签我可以指向页面到新的uri

现在我的问题和菜单中的所有菜单项都获得相同的URI。

回答

6

它没有&吗?对象在PHP中默认通过引用传递,所以调用setUri应该(理论上)修改原始对象。另请注意,您的if语句正在执行一项任务($ label =“MyPage”),而不是比较($ label ==“MyPage”)。

假设$容器的Zend的导航对象,组件有方法,使这更容易,所以你应该能够简化您的代码:

$page = $container->findByLabel('MyPage'); 
$page->setUri("mypage.php?stcode=".$stcode."&cde=".$cde); 

http://framework.zend.com/manual/en/zend.navigation.containers.html#zend.navigation.containers.finding一些更多的例子。

+0

喷泉:非常感谢 – Someone 2010-09-01 19:58:03