1

我需要为类别切换创建 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

网址可以包含许多不同的参数,但类别名称和页面应该始终放在第一位,没有页面的类别也应该工作并显示第一页。

目前我已经定义了两条路由,我正在使用 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?

4

2 回答 2

0

我会尝试的事情:

  1. 在 $urlOptions 中添加模块、控制器和操作参数(这是您传递给视图助手的第一个数组)
  2. 而不是 'category' 路由名称尝试 null ,看看它对你有什么作用。
  3. 尝试删除这一行“resources.router.routes.category.defaults.category =”

请说明您使用的是什么版本的 zf。

于 2012-09-19T07:26:24.447 回答
0

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

$view->url(
        array_merge(
                $params,
                array('category' => $list_item['url'],
                'page' => 1)
                ),
                'category_main', 
             FALSE
            );
于 2013-01-15T00:27:27.503 回答