Php 如何基于命名路由创建URL字符串并保留参数

Php 如何基于命名路由创建URL字符串并保留参数,php,zend-framework,routes,urlhelper,Php,Zend Framework,Routes,Urlhelper,我需要为类别切换创建url,切换类别应将页面重置为第一个,并更改cat名称,但保留url参数的其余部分 url示例: http://example.com/cat/fruits/page/3/q/testquery/s/date/t/kcal/mine/26/maxe/844/minb/9/mint/4/maxt/93/minw/7/minbl/6/maxbl/96 URL可以包含许多不同的参数,但类别名称和页面应始终位于第一位,没有页面的类别也应工作,并显示第一页 目前,我已经定义了两个路由

我需要为类别切换创建url,切换类别应将页面重置为第一个,并更改cat名称,但保留url参数的其余部分

url示例:

http://example.com/cat/fruits/page/3/q/testquery/s/date/t/kcal/mine/26/maxe/844/minb/9/mint/4/maxt/93/minw/7/minbl/6/maxbl/96
URL可以包含许多不同的参数,但类别名称和页面应始终位于第一位,没有页面的类别也应工作,并显示第一页

目前,我已经定义了两个路由,我正在使用Zend的url帮助器和命名路由,但它重置了参数,并且作为最终结果,我有/cat/cat_name/page/1 url

$category_url = $view->url(array('category'=>$list_item['url'],'page'=>1),'category',FALSE)


resources.router.routes.category_main.route = "/cat/:category/*"
resources.router.routes.category_main.defaults.module = "ilewazy"
resources.router.routes.category_main.defaults.controller = "index"
resources.router.routes.category_main.defaults.action = "results"
resources.router.routes.category_main.defaults.category = 
resources.router.routes.category_main.defaults.page = 1

resources.router.routes.category.route = "/cat/:category/page/:page/*"
resources.router.routes.category.defaults.module = "ilewazy"
resources.router.routes.category.defaults.controller = "index"
resources.router.routes.category.defaults.action = "results"
resources.router.routes.category.defaults.category = 
resources.router.routes.category.defaults.page = 1
在这种情况下,我需要创建用于组装url的自定义方法吗?

我会尝试的事情:

在$URLPOPTIONS中添加模块、控制器和操作参数 传递给视图辅助对象的第一个数组 请尝试null,而不是“category”路由名称,并查看它的作用 你 尝试删除此行 resources.router.routes.category.defaults.category=
请指定您使用的zf版本。

解决方案非常简单,只需将所有当前请求参数传递给url帮助器即可 选择覆盖/添加其中的一些,页面和类别在我的情况下,最后一个变量设置为FALSE以防止路由重置

$view->url(
        array_merge(
                $params,
                array('category' => $list_item['url'],
                'page' => 1)
                ),
                'category_main', 
             FALSE
            );

闪烁url到底是什么?没什么特别的,只是用于搜索和排序功能的url,不知道为什么会闪烁: