1

我正在尝试在我的网站上设置 Zend 分页,以便我可以使用 Paul Irish 的 jquery 无限滚动插件,但我的路线有问题。我目前为我的组织者页面设置了这些路线:

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

它按此顺序正确匹配organizer/index/popular,但如果我在其上添加页码,过滤器突然出现空值。如果我切换订单,organizer/index/popular/2效果很好,但organizer/index/popular不再有效。我只能使用更具体的路线,因为这是我需要进行分页的路线,但我想同时包含这两种路线,以适应尝试键入 url 的用户,或者以防我忘记更改代码中某处的链接。我可以使用 Zend 将多个路由合并到同一个控制器吗?如果是这样,我做错了什么?

4

2 回答 2

1

您需要为路线指定不同的名称。您将它们都称为“组织者”,因此第二个每次都替换第一个。

您也可以通过为 page 变量设置默认值来轻松地使用一条路由完成此操作:

$route = new Zend_Controller_Router_Route(
    'organizer/index/:filter/:page',
    array(
        'controller'=> 'organizer',
        'action'=> 'index',
        'page' => 1
    )
); 
$router->addRoute('organizer', $route);
于 2012-07-19T21:56:48.077 回答
0

您添加到路由器的每条路由都必须具有唯一的名称,因此您要添加的第二条路由必须具有不同的名称,因为您当前的代码会覆盖该路由organizer。将第二个调用更改为$router->addRoute()如下所示:

$router->addRoute('organizer2', $route );
于 2012-07-19T21:56:19.890 回答