【问题标题】:How do i pass the PHP Dynamic variables in to the XML File如何将 PHP 动态变量传递给 XML 文件
【发布时间】:2011-04-06 11:24:56
【问题描述】:

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

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 从 Controller 传递并且该页面 abc.php 仅在正确的参数为时才被激活 如果没有通过,它将被重定向到 default.php

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

我正在做的是将页面作为标签 如果页面的值为“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);
    }           

}

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

【问题讨论】:

    标签: zend-framework zend-navigation


    【解决方案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 迭代所有页面容器,找到您需要的并更新它(例如在控制器插件中)。

    【讨论】:

    • 如何将“Val”作为动态值传递给 navigation.xml 文件
    • @Someone 没有现成的方法,你必须更新整个&lt;uri&gt;
    • 你的意思是你说要更新控制器中的 URI。它正确吗?如果是,我该怎么做
    • 最好的方法是在控制器插件中。从视图中获取导航容器,如您的帖子,使用$container-&gt;find… 找到您需要的页面,然后使用setUri()$page-&gt;uri 设置uri
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2018-08-07
    • 1970-01-01
    • 2019-02-01
    相关资源
    最近更新 更多