Zend Created route,现在所有链接都使用此URL

时间:2012-01-24 23:20:22

标签: zend-framework zend-route zend-router

我创建了一条查看用户个人资料的路线:

$router = Zend_Controller_Front::getInstance()->getRouter();
    $route  = new Zend_Controller_Router_Route(
            'profile/:username',
            array(
                'username'      => 'username',
                'module'        => 'core',
                'controller'    => 'profile',
                'action'        => 'view'   
            ) 
    );
    $router->addRoute('profile',$route);

当我去那里时,页面中的所有网址现在都说http://127.0.0.1/project/public/profile

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果使用Url视图助手或Zend_Navigation,则需要指定要使用的路由,如果您不希望它使用当前路径。例如......

Url查看助手

使用“默认”路线

<?php echo $this->url(array(
    'action'     => 'index',
    'controller' => 'index'
), 'default', true) ?>

导航配置

resources.navigation.pages.home.label      = "Home"
resources.navigation.pages.home.action     = "index"
resources.navigation.pages.home.controller = "index"
resources.navigation.pages.home.module     = "default"

; Don't forget to set the route
resources.navigation.pages.home.route      = "default"

附录

配置路由的最简单方法是通过Router资源。在您的配置中尝试此操作,而不是您拥有的代码

resources.router.routes.profile.route               = "profile/:username"
resources.router.routes.profile.defaults.module     = "core"
resources.router.routes.profile.defaults.controller = "profile"
resources.router.routes.profile.defaults.action     = "view"

答案 1 :(得分:0)

谢谢菲尔! 我遇到了同样的问题,你救了我;)

仅供参考,对于使用Zend Navigation的xml结构的人,只需为每条路线添加。

例如:

<?xml version="1.0" encoding="UTF-8"?>
    <configdata>
        <nav>
            <myfirstroute>
                <label>...</label>
                <module>...</module>
                <controller>...</controller>
                <action>...</action>
                **<route>default</route>**
            </myfirstroute>

            <mysecondroute>
                <label>...</label>
                <module>...</module>
                <controller>...</controller>
                <action>...</action>
                **<route>default</route>**
            </mysecondroute>
            ...
        </nav>
    </configdata>

见到你!