【问题标题】:how to access parameters from url in cakephp 3如何从 cakephp 3 中的 url 访问参数
【发布时间】:2016-08-04 06:38:44
【问题描述】:

在cakephp 3的cook book中。给出了使用构建url

echo $this->Url->build([
    "controller" => "Posts",
    "action" => "view",
    "foo" => "bar"
]);

将输出为

/posts/view/foo:bar

如何访问foo:bar 并保存在变量$foo 中?

【问题讨论】:

  • 您确定您使用的是 cake3 吗? cake 3 将返回/posts/view/?foo=bar。似乎是一个 cake2 应用程序
  • $var = $this->request->param('foo')
  • 我猜是文档中的错误,或者可能是最近更改的。你试过你的代码吗?我刚刚在 cake3.2.13 应用程序中尝试了您的确切代码,它按预期给出了/posts/view/?foo=bar。无论如何@JacekBBudzyñski 评论是正确的

标签: cakephp cakephp-3.2


【解决方案1】:

CakePHP 3.* 版本可以使用请求查询:

$this->request->getQuery('utm_source')

【讨论】:

    【解决方案2】:

    菜谱有错误,所以我打开了this

    如果您使用此代码

    echo $this->Url->build([
        "controller" => "Posts",
        "action" => "view",
        "foo" => "bar"
    ]);
    

    你会得到一个这样的网址

    /posts/view/?foo=bar
    

    手册 here 解释了如何访问 GET 参数

    你可以的

    $this->request->query('foo');
    

     $this->request->query['foo'];
    

    第一个是空安全的,这意味着如果没有设置“foo”参数,你只会得到null而不是错误

    编辑

    3.4.0 之后的新语法是

    $this->request->getQuery('foo');
    

    【讨论】:

      【解决方案3】:

      或者在一行中将所有参数作为一个数组获取:

      $params = $this->request->getQueryParams();
      

      【讨论】:

        猜你喜欢
        • 2018-12-18
        • 2018-09-04
        • 2021-08-28
        • 2021-01-11
        • 2015-04-27
        • 1970-01-01
        • 1970-01-01
        • 2017-04-25
        • 1970-01-01
        相关资源
        最近更新 更多