0

我正在尝试生成菜单并为此使用 navigation.xml(Zend 框架)

Contents of navigation.xml(file) 
<?xml version="1.0" encoding="UTF-8"?>
<config>
<nav>
<page1>
<pages>
<label>test</label>
    <uri>abc.php</uri> </pages><page1></nav></config>

并在控制器中读取 config.xml 文件,如下所示

 $config = new Zend_Config_Xml('/configuration/navigation.xml', 'nav');
 $container = new Zend_Navigation($config);
 $view->getHelper('navigation')->setContainer($container);

在上面的 XML 文件中,我如何将动态值传递给“abc.php?param1=".$paramvalue 如果无法从 XML 文件中获取我如何通过从 navigation.xml 中获取 Url 和该页面 abc 从控制器传递。 php 仅在传递正确的参数时才被激活,否则它将被重定向到 default.php

在视图中我只是说 echo $this->navigation()->menu()->render(); 它将页面显示为,每个页面都需要附加一个参数才能转移到适当的位置。所以我的问题是如何将动态参数附加到来自 navigation.xml 的每个链接

如果页面具有值“myPage”,那么 iam 正在做的是将页面作为标签,然后 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);
    }           

}

 Now my problem and all the menu items in the menu are getting the same URI .
 i dont know what  wrong iam doing 
4

1 回答 1

1

我不确定您要实现什么,但您可以为 MVC 页面设置参数,如下所示:

<page1>
<pages>
<label>test</label>
<params>
<param1>param1value</param1>
<myparam2>myparam2value</myparam2>
</params>

或者:

<page1>
<pages>
<label>test</label>
<uri>abc.php?param1=val</uri>

然后你可以通过以下方式找到它:

$page = $container->findOneByLabel('test');
$page->setUri($yourNewUri);

您可以使用RecursiveIterator迭代所有页面容器,找到您需要的并更新它(例如在控制器插件中)。

于 2010-09-01T06:59:13.837 回答