【问题标题】:cakephp url argument in json formatjson格式的cakephp url参数
【发布时间】:2011-11-02 10:32:08
【问题描述】:

我想要使用 cakephp 的以下类型的 URL。

http://localhost/project1/controller1/action1/[{"user_id":"1","udid":"","msg":"","nick_n":"Danis","post_t":"2011-10-21 12:15:00","source":"A"}]/50

[{"user_id":"1","udid":"","msg":"","nick_n":"Danis","post_t":"2011-10-21 12:15:00","source":"A"}] 和 50 是参数。

我在 /app/config/routes.php 文件中写了以下行。

Router::connect('/controller/action/*', array('controller' => 'controller1', 'action1' => 'actionName'));

但是当我调试上面的 URL 时,我没有得到 json 格式的参数。

这是我的行动。

function action1($arg1 = NULL, $arg2 = NULL) {
      // I am getting 50 in $arg1 and $arg2 = NULL.
}

如果我在这里遗漏了什么,请告诉我。我没有在 $arg1 中得到 json 格式的参数。

谢谢。

【问题讨论】:

    标签: php cakephp routes cakephp-1.3


    【解决方案1】:

    问题是由“:”字符引起的。

    在 CakePhp 中,您可以在 url 中设置 named parameters,所以如果您有这样的 url:

    mysite.com/name:John
    

    cake 将在控制器中生成$this->params['named'] 数组。在您的情况下,cake 会识别 url 中的“:”,它也会尝试创建命名参数。不幸的是,对参数进行 url 编码不能解决问题

    您可以更改命名参数的分隔符.. 但我想说最好的方法是只为这个特定的 url 创建一个custom route class,站点的其余部分将使用正常的路由类

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多