0

我刚刚在我的 Zend 站点的引导程序中设置了几条路线,这是其中之一:

$route = new Zend_Controller_Router_Route('organizer/haveItem',
                                                array('controller'=> 'organizer',
                                                'action'=> 'haveItem')); 
    $router->addRoute('have', $route);

另一个新的基本相同,将“拥有”替换为“想要”。我这样做是为了让任何 Ajax 调用都被这些路由捕获,而不是陷入我的索引操作,此时它们基本上永远丢失了,因为如果我尝试从那里重定向到正确的操作,我只会陷入无限环形。

我的问题是,当我使用这些路由时,我收到 500 错误。我相信这是因为这些路由正在从 Ajax 调用中删除参数化变量,或者因为任何参数化变量导致调用与这些路由不匹配并落入索引操作。这实际上会导致 500 错误吗?如果是这样,我该如何调整这些路由以考虑 Ajax 发布变量?

4

1 回答 1

0

Zend 的路由器可以完美地通过路由传递 ajax 变量。问题是我有多个路由到同一个控制器。就在拥有和想要的路线下方,我有这条路线:

$route = new Zend_Controller_Router_Route('organizer/:filter/:page',
                                                array('controller'=> 'organizer',
                                                'action'=> 'index',
                                                'page'=>1)); 
    $router->addRoute('organizer searches', $route);

这吸引了我的有和想要的电话。当我将这个移到列表顶部时,它工作得非常好。我相信 Zend 路由器自下而上评估路由,如 Zend 文档http://framework.zend.com/manual/en/zend.controller.router.html中所述,因此您必须坚持更具体的路由列表的底部。例如,我的所有在组织者段之后带有关键字的路线都必须在任何路线下方,:filter以便它们首先被捕获。

于 2012-08-13T17:55:08.420 回答