2010-09-01 158 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