gpt4 book ai didi

zend-framework - 由于 Zend 路线,zend 导航无法正常工作

转载 作者:行者123 更新时间:2023-12-01 01:31:11 26 4
gpt4 key购买 nike

编辑::
问题是由 Zend 路由引起的,请检查更新

我正在使用 xml 文件进行导航。

编辑::以下代码来自layout.phtml文件

$config = new Zend_Config_Xml(APPLICATION_PATH.'/configs/adminnav.xml', 'nav');
$container = new Zend_Navigation($config);
$this->navigation()->setContainer($container);
echo $this->navigation();

当我在我的编辑页面时,都没有任何菜单链接。所有得到的都是菜单项上的/admin/controller/edit/。任何的想法?

我的编辑操作需要 id,如果未提供 id,则会生成并出错。但是添加和列表方法工作正常

更新::
<?xml version="1.0"?>
<config>
<nav>
<home>
<label>home</label>
<uri>#</uri>
<pages>
<home>
<label>home</label>
<module>admin</module>
<controller>home</controller>
<action>index</action>
</home>
<help>
<label>help</label>
<module>admin</module>
<controller>home</controller>
<action>help</action>
</help>
</pages>
</home>
<page>
<label>pages</label>
<uri>#</uri>
<pages>
<static>
<label>static pages</label>
<module>admin</module>
<controller>page</controller>
<action>index</action>
</static>
<editpage>
<label>static pages</label>
<module>admin</module>
<controller>page</controller>
<action>edit</action>
</editpage>
</pages>
</page>

<destination>
<label>destinations</label>
<uri>#</uri>
<pages>
<list>
<label>list all</label>
<module>admin</module>
<controller>destination</controller>
<action>index</action>
</list>
<featured>
<label>featured</label>
<module>admin</module>
<controller>destination</controller>
<action>featured</action>
</featured>
<add>
<label>add destination</label>
<module>admin</module>
<controller>destination</controller>
<action>add</action>
</add>
<editdest>
<label>edit destination</label>
<module>admin</module>
<controller>destination</controller>
<action>edit</action>
</editdest>
</pages>
</destination>

<tours>
<label>tours</label>
<uri>#</uri>
<pages>
<list>
<label>list tours</label>
<module>admin</module>
<controller>tour</controller>
<action>index</action>
</list>
<featured>
<label>featured tours</label>
<module>admin</module>
<controller>tour</controller>
<action>featured</action>
</featured>
<add>
<label>add tours</label>
<module>admin</module>
<controller>tour</controller>
<action>add</action>
</add>
<edittour>
<label>edit tours</label>
<module>admin</module>
<controller>tour</controller>
<action>add</action>
</edittour>
</pages>
</tours>

<hotels>
<label>hotels and resort</label>
<uri>#</uri>
<pages>
<list>
<label>list hotel</label>
<module>admin</module>
<controller>hotel</controller>
<action>index</action>
</list>
<add>
<label>add hotel</label>
<module>admin</module>
<controller>hotel</controller>
<action>add</action>
</add>
<edithotel>
<label>add hotel</label>
<module>admin</module>
<controller>hotel</controller>
<action>add</action>
</edithotel>
</pages>
</hotels>

<message>
<label>message</label>
<uri>#</uri>
<pages>
<all>
<label>all message</label>
<module>admin</module>
<controller>message</controller>
<action>index</action>
</all>
<contactus>
<label>contact</label>
<module>admin</module>
<controller>message</controller>
<action>contact</action>
</contactus>
<inquiry>
<label>inquiry</label>
<module>admin</module>
<controller>message</controller>
<action>inquiry</action>
</inquiry>
<reservation>
<label>reservation</label>
<module>admin</module>
<controller>message</controller>
<action>reservation</action>
</reservation>
</pages>
</message>

<advertisement>
<label>advertisement</label>
<uri>#</uri>
<pages>
<list>
<label>list ads</label>
<module>admin</module>
<controller>advertisement</controller>
<action>index</action>
</list>
<add>
<label>add ads</label>
<module>admin</module>
<controller>advertisement</controller>
<action>add</action>
</add>
<editad>
<label>edit ads</label>
<module>admin</module>
<controller>advertisement</controller>
<action>edit</action>
</editad>
</pages>
</advertisement>

<setting>
<label>settings</label>
<uri>#</uri>
<pages>
<view>
<label>view</label>
<module>admin</module>
<controller>setting</controller>
<action>view</action>
</view>
<account>
<label>account setting</label>
<module>admin</module>
<controller>setting</controller>
<action>account</action>
</account>
<site>
<label>site setting</label>
<module>admin</module>
<controller>setting</controller>
<action>site</action>
</site>
</pages>
</setting>
</nav>
</config>

UPDATE::route 用于 bootstrap.php 上的编辑操作
    $frontcontroller = Zend_Controller_Front::getInstance();
$router = $frontcontroller->getRouter('router');

//add route for edit page so that pageid is not displayed in the url
$router->addRoute(
'edit-page',
new Zend_Controller_Router_Route('admin/page/edit/:pageid', array(
'module' => 'admin',
'controller' => 'page',
'action' => 'edit',
'pageid' => 'pageid'
))
);

更新::给菲尔
<editdest>
<label>edit destination</label>
<module>admin</module>
<controller>destination</controller>
<action>edit</action>
<route>12</route>
</editdest>

这个错误::
Fatal error: Zend_Controller_Router_Exception: Route 12 is not defined in
/usr/share/php/libzend-framework-php/Zend/View/Helper/Navigation/HelperAbstract.php
on line 522

最佳答案

如果涉及静态路由,则需要在所有导航页面上设置路由名称。这是因为导航 View 助手使用 Url View 助手来创建链接。

如果不存在路由名称,则使用当前路由。

如果当前路由是静态路由,则无论抛出什么参数,它都只会解析为一个 URL。

关于zend-framework - 由于 Zend 路线,zend 导航无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4817294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com