zend-framework – zend naviagtion由于zend route而无法工作

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了zend-framework – zend naviagtion由于zend route而无法工作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑::
问题是由于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 / everywhere.任何的想法?

我的编辑操作采用id,如果没有提供id,那么它将生成并出错.但是add和list方法工作正常

更新::

<?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 :: 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

解决方法

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

如果没有路由名称,则使用当前路由.

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

脚本宝典总结

以上是脚本宝典为你收集整理的zend-framework – zend naviagtion由于zend route而无法工作全部内容,希望文章能够帮你解决zend-framework – zend naviagtion由于zend route而无法工作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。