【问题标题】:fat free: how to specify a query string in routefat free:如何在路由中指定查询字符串
【发布时间】:2017-06-15 23:18:06
【问题描述】:

在 Fat Free Framework 中,我试图弄清楚如何在路由调用或 routes.ini 文件中指定查询字符串。

我希望能够解码这样指定的路由

http://example.com/search?category=22&term=wide

请注意,如果可能的话,我希望查询字符串中包含不同数量的元素。

提前致谢

【问题讨论】:

    标签: fat-free-framework


    【解决方案1】:

    框架不允许路由查询字符串,只能路由路径。

    因此,要么修改路由以在 URI 路径中包含参数:

    ;routes.ini
    GET /search/@category = MyController->searchByCategory
    GET /search/@category/@term = MyController->searchByCategoryAndTerm
    

    (需要严格的参数顺序)

    或者您将所有内容路由到同一个控制器并在那里解析查询字符串:

    ;routes.ini
    GET /search = MyController->search
    
    class MyController {
    
      function search(\Base $f3) {
        $category=$f3->get('GET.category);
        $term=$f3->get('GET.term');
        //etc.
      }
    
    }
    

    如果您正在实施搜索表单,则第二种解决方案看起来最合适。

    【讨论】:

    • 我同意第二种形式比较合适,但是在routes.ini中应该怎么写路由;这就是我的不足之处。应该是 GET /search/* 之类的吗?
    • 如果它对其他人有用,一个简单的 GET /search 路线加上建议的手动解码就可以完成这项工作。非常感谢
    • GET /search 就足够了。查询字符串不需要出现在路由定义中。我已经更新了答案。
    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2013-11-02
    • 1970-01-01
    相关资源
    最近更新 更多