【问题标题】:Creating URL for pagination, ordering and filters - ZF为分页、排序和过滤器创建 URL - ZF
【发布时间】:2013-03-26 21:39:42
【问题描述】:

所有正在阅读本文的人,

我 5 分钟前上网,发现了一个很不错的 URL:

www.exemple.com/blog/rating.asc/2

与以下内容有关:

blog => controller/action/module or anything
rating => ordered by
asc => order of list
2 => current page

我想知道如何使用 Zend Framework 的 Zend_Controller_Router_Route 类创建类似的 URL。

对于我的网站,它会是这样的:

www.exemple.com/portfolio/date.asc/2

www.exemple.com/blog/author.desc/ (page optional, default 1)

www.exemple.com/blog/ (default order: date.asc, page: 1)

注意:我对正则表达式不友好,所以我想禁止这样做,或者如果有人确切表达,将不胜感激。

【问题讨论】:

    标签: php zend-framework url url-rewriting zend-router


    【解决方案1】:

    嘿,我不确定你是否使用 ini 进行配置,但如果我有,我会这样做:

    module     => blog
    controller => article
    action     => list
    // Parameter to get from the request in the controller
    // Note that those are the defaults in case you don't provide any parameters in the url
    sortBy => author
    order  => asc
    page   => 1   
    

    在ini文件中:

    ; /www.exemple.com/blog/articles/author/desc/2
    resources.router.routes.whateverroutname.route = /blog/articles/:sortBy/:order/:page
    resources.router.routes.whateverroutname.defaults.module = blog
    resources.router.routes.whateverroutname.defaults.controller = article
    resources.router.routes.whateverroutname.defaults.action = list
    resources.router.routes.whateverroutname.defaults.sortBy = author
    resources.router.routes.whateverroutname.defaults.order = asc
    resources.router.routes.whateverroutname.defaults.page = 1
    

    希望这会有所帮助:)

    【讨论】:

    • 嗯,这很好,只是排序和顺序不是由/ 而是由. 划分的。
    • Zend Router 根据路由匹配分离参数。匹配参数分隔符是“/”。可能您必须编写自己的作家来考虑“。”作为参数分隔符和隐蔽的路由,例如 /blog/articles/:sortBy.:order/:page。牢记思想,即“。”符号有时用于在 CEO 中分隔单词。因此,您的链接可能会被某些搜索引擎误解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 2019-11-06
    • 2013-02-19
    • 2012-03-03
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多