在Zend Framework中添加页面参数不起作用

时间:2009-12-04 03:18:45

标签: zend-framework pagination router

这些天我一直试图解决这个问题。当我想在我的网址中为我的分页添加'page'参数时,我遇到了问题。

这是我的路由器


        ->addRoute('budi',new Zend_Controller_Router_Route(':lang/budi',array('controller' => 'budi', 'action' => 'index', 'page' => 1), array('lang'=>$s, 'page' => '\d+')))
        ->addRoute('budi1',new Zend_Controller_Router_Route(':lang/budi/page/:page',array('controller' => 'budi', 'action' => 'index', 'page' => 1), array('lang'=>$s, 'page' => '\d+')))

然后我访问我的网址


http://localhost/learningsystem/en/budi

但是当我将鼠标悬停在我的分页链接上时,页面参数不会出现。网址仍然是 http://localhost/learningsystem/en/budi

但如果我像这样输入与索引相同的URL


http://localhost/learningsystem/en/budi/index

或喜欢这个


http://localhost/learningsystem/en/budi/page/1

当我点击第2页链接 http://localhost/learningsystem/en/budi/index/page/2

时,页面参数会完美显示

实际上,我不想在我的网址中首先包含'index'或'page'。无论如何,我使用Zend的默认pagination.phtml模板。有人请帮我解决这个问题吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

$router->addRoute(
  'budi',
  new Zend_Controller_Router_Route_Regex(
    '(.*)/budi',
    array('controller' => 'budi', 'action' => 'index', 'page' => 1),
    array(1 => 'lang', 2 => 'page'),
    '%s/budi/page/%d'
  )
);
$router->addRoute(
  'budi1',
  new Zend_Controller_Router_Route_Regex(
    '(.*)/budi/page/(\d*)',
    array('controller' => 'budi', 'action' => 'index'),
    array(1=>'lang', 2=>'page'),
    '%s/budi/page/%d'
  )
);