【问题标题】:How to createe a URL string based on a named route and keep parameters如何基于命名路由创建 URL 字符串并保留参数
【发布时间】:2012-09-18 21:01:53
【问题描述】:

我需要为类别切换创建 url,切换类别应将页面重置为第 1 并更改猫名,但保留其余 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

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

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

【问题讨论】:

  • 闪烁这个网址到底是什么
  • 没什么花哨的,只是搜索和排序功能的 url,不知道为什么所有这些都在闪烁 (:

标签: php zend-framework routes urlhelper


【解决方案1】:

我会尝试的事情:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-12
      • 2020-07-09
      • 2018-02-02
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 2021-05-21
      相关资源
      最近更新 更多