Iam尝试使用navigation.xml(Zend Framework)生成菜单和For iam
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>
并在控制器iam中读取config.xml文件,如下所示
$config = new Zend_Config_Xml('/configuration/navigation.xml', 'nav');
$container = new Zend_Navigation($config);
$view->getHelper('navigation')->setContainer($container);
在Above XML文件中如何将动态值传递给“abc.php?param1 =”。$ paramvalue 如果不可能从XML文件如何通过从navigation.xml获取Url来从Controller传递该页面abc.php只有在正确的参数是 如果不通过它将被重定向到default.php
在View iam中只是说echo $ this-&gt; navigation() - &gt; menu() - &gt; render();它显示页面,每个页面都需要附加一个参数,以便传输到适当的位置。所以我的问题是如何将动态参数附加到来自navigation.xml的每个链接
我正在做的是将页面作为标签 如果页面的值为“myPage”,那么我将设置新的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
答案 0 :(得分:1)
我不确定你想要实现什么,但你可以为MVC页面设置params:
<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
迭代所有页面容器,找到您需要的容器并更新它(例如,在控制器插件中)。