如何在cakephp 3中从url访问参数

qf9go6mv  于 2022-11-12  发布在  PHP
关注(0)|答案(3)|浏览(162)

在cakephp 3的cook book中,给出了使用

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

将输出为

/posts/view/foo:bar

如何访问运行中的foo:bar并将其保存在变量$foo中?

ddrv8njm

ddrv8njm1#

食谱上有个错误所以我打开了这张票
如果您使用此代码

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

你会得到一个这样的网址

/posts/view/?foo=bar

手册此处解释了如何访问GET参数
您可以

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

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

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

编辑

在3.4.0之后,新语法为

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

e5nqia272#

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

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

ttygqcqt3#

或者在一行中以Array的形式获取所有参数:

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

相关问题