ZF 1无法链接到Route_Module以获取Id字段

时间:2012-05-01 19:53:05

标签: zend-framework zend-route

我在ZF 1中有两个模块,一个是模块,另一个是初始应用程序本身,我的问题是在编辑与记录交互时,我需要在动作后提交一个Id动态编号。

下面的代码不起作用我无法理解问题出在哪里......任何想法或消息? 无法正常工作=无法识别ID部分

protected function _initRoutes()
    {
        $ctrl = Zend_Controller_Front::getInstance();

        $router = $ctrl->getRouter();

        $primary = new Zend_Controller_Router_Route_Module(
                array()
                ,$ctrl->getDispatcher()
                ,$ctrl->getRequest()
                );

        $secondary = new Zend_Controller_Router_Route(
                ':id', array( 'id' =>  "\d+" ) 
                );

        $primary->chain($secondary);

        $router->addRoute("default", $primary);
    }

1 个答案:

答案 0 :(得分:0)

问题可能是模块路由在末尾包含标准通配符,它​​匹配键/值对(:module/:controller/:action/*),因此这条路由匹配整个URL,因为第二条路径没有匹配的路线,整体比赛失败。

在这里使用路由链接你真的没什么收获。你最好只使用Zend_Controller_Router_Route:

$route = new Zend_Controller_Router_Route(
    ':module/:controller/:action/:id',
    array(
        'module' => 'default',
        'controller' => 'index',
        'action' => 'index'
    ),
    array(
        'id' =>  "\d+"
    ) 
);
$router->addRoute('default', $route);