我需要为类别切换创建网址,切换类别应该将页面重置为第1并更改猫名称,但保留其余网址参数。
网址示例:
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
网址可以包含许多不同的参数,但类别名称和页面应该始终是第一个,没有网页的类别也应该有效并显示第一页。
目前我已经定义了两条路线,我正在使用Zend的url helper和named route但是它会重置params并且作为最终结果我有/ 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
在这种情况下,我是否需要创建自定义方法来组装网址?
答案 0 :(得分:0)
我会尝试的事情:
请指定您使用的zf版本。
答案 1 :(得分:0)
解决方案非常简单,只需要将所有当前请求参数传递给url helper (并且在我的情况下可选地覆盖/添加其中一些,页面和类别),最后一个变量设置为FALSE以防止路由重置。
$view->url(
array_merge(
$params,
array('category' => $list_item['url'],
'page' => 1)
),
'category_main',
FALSE
);