Zend framework Zend Framework paginator force$\u获取参数用法
是否可以将paginator与$\u GET参数一起使用 例如,我有这样一条路线:Zend framework Zend Framework paginator force$\u获取参数用法,zend-framework,routing,Zend Framework,Routing,是否可以将paginator与$\u GET参数一起使用 例如,我有这样一条路线: $router->addRoute('ajax_gallery', new Routes_Categories( '/:lang/:category/age/:dep/:cat/:towns', array( "page" => 1, "dep" => 0, "cat" => 0, "towns" => 0 ), array( "dep" => "[0-9]+", "cat"
$router->addRoute('ajax_gallery',
new Routes_Categories(
'/:lang/:category/age/:dep/:cat/:towns',
array(
"page" => 1,
"dep" => 0,
"cat" => 0,
"towns" => 0
),
array(
"dep" => "[0-9]+",
"cat" => "[0-9]+"
)
));
<?php echo $this->url(array('page' => $this->previous)); ?>
我通过ajax发出如下请求:
但是从结果返回的链接没有?dep=9&cat=27&towns=1
如何强制zend paginator在分页链接生成中使用传递的$\u GET参数
因此,返回的链接是:
http://localhost/en/gallery/2?dep=9&cat=27&towns=1
http://localhost/en/gallery/3?dep=9&cat=27&towns=1
http://localhost/en/gallery/4?dep=9&cat=27&towns=1
http://localhost/en/gallery/2?dep=9&cat=27&towns=1
http://localhost/en/gallery/3?dep=9&cat=27&towns=1
http://localhost/en/gallery/4?dep=9&cat=27&towns=1
等等
甚至
http://localhost/en/gallery/2/9/27/1
http://localhost/en/gallery/3/9/27/1
http://localhost/en/gallery/4/9/27/1
http://localhost/en/gallery/2/9/27/1
http://localhost/en/gallery/3/9/27/1
http://localhost/en/gallery/4/9/27/1
就像它们是在路线内部定义的一样
等等
谢谢查看URL帮助程序将始终输出参数作为URL的一部分(用斜杠分隔),据我所知,它不支持GET参数格式 我不知道Routes_Categories类做什么,但是使用默认的ZF route类可以尝试以下方法:
$route = new Zend_Controller_Router_Route(
'/:lang/:category/:age/:dep/:cat/:towns/*',
array(
"dep" => 0,
"cat" => 0,
"towns" => 0
),
array(
"dep" => "[0-9]+",
"cat" => "[0-9]+"
)
);
$router->addRoute('ajax_gallery', $route);
*支持路由后的任何其他命名参数。以上假设lang、类别和年龄是必需的,dep、cat和towns是可选的。请记住,如果要设置cat,则必须设置dep,否则路线将混淆哪个变量是什么
在控制器中,通过以下方式访问页面参数,默认设置为1
$page = $this->_getParam('page', 1);
通过AJAX访问URL,如下所示:
如果需要页面参数,请使用命名参数:
要在分页中使用此路由,您需要更新paginator视图控件以使用正确的路由。见:
查找输出URL的代码,并将路由名称添加到URL视图帮助器中。因此,请像这样替换代码:
$router->addRoute('ajax_gallery',
new Routes_Categories(
'/:lang/:category/age/:dep/:cat/:towns',
array(
"page" => 1,
"dep" => 0,
"cat" => 0,
"towns" => 0
),
array(
"dep" => "[0-9]+",
"cat" => "[0-9]+"
)
));
<?php echo $this->url(array('page' => $this->previous)); ?>
与: