【问题标题】:Safely passing a query string to an echoed URL in Cake 2.4在 Cake 2.4 中安全地将查询字符串传递给回显的 URL
【发布时间】:2014-04-02 01:00:47
【问题描述】:

在 CakePHP 2.4 中,如何安全地将视图查询字符串传递给自定义 URL 查询字符串?

基本上,当访问posts/map?param1=1&param2=2 的视图时,我需要该视图回显/posts/points.json?param1=1&param2=2

编辑: HtmlHelper 将& 转换为&amp 的Hacky 解决方法;

    echo str_replace("&", "&", $this->Html->url(array(
        'controller' => 'posts',
        'action' => 'points',
        'ext' => 'json',
        '?' => $this->request->query
        )));

【问题讨论】:

    标签: php json cakephp cakephp-2.0 cakephp-2.4


    【解决方案1】:

    请阅读passed-named-or-query-string-params

    你应该在 CakePHP2.x 中使用查询字符串 这些是通过 GET 在 url 之间传递值的正确形式。 它们还可以很好地与扩展配合使用。

    另外,您的操作名称错误。 你应该把它分成“action”和“ext”:

    array(
        'controller' => 'posts',
        'action' => 'points',
        'ext' => 'json',
        '?' => array('param1' => 1, ...)
    ),
    

    【讨论】:

    • 谢谢,马克。我实际上已经阅读了您的博客文章,并且我会考虑切换到查询字符串,但我目前正在使用 CakeDC 搜索插件,它使用命名参数。
    • 不,因为我主要写了它,我知道它非常适用于查询字符串 - 顺便说一下,上面链接的帖子中也提到了如何让它与查询字符串一起使用:) 注意$config['Search'] 部分。
    • 我的意思是 CakeDC 搜索插件。我什至会说这些天查询字符串比命名参数更有效。提示:试试 development 分支——它有一些尚未在 master 分支中结束的功能。
    • 我很尴尬不知道查询字符串选项!谢谢,您为我指明了正确的方向,我已经切换了。也许可以修改 Github 文档代码 sn-ps 以弃用命名参数?
    • 他们真的应该。也许你可以用这些信息做一个 PR。
    猜你喜欢
    • 2019-02-05
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    相关资源
    最近更新 更多