如何在CAKEPHP中访问GET请求?

时间:2011-05-26 05:51:25

标签: cakephp cakephp-1.3

如何在CAKEPHP中访问GET请求?

如果我在URL中传递变量

http://samplesite.com/page?key1=value1&key2=value2

我应该使用$ _GET或$ this-> params来获取控制器中的值吗? CAKEPHP的标准是什么?

6 个答案:

答案 0 :(得分:24)

在CakePHP 2.0中,这似乎已经改变了。根据文档,您可以访问$this->request->query$this->request['url']

// url is /posts/index?page=1&sort=title
$this->request->query['page'];

// You can also access it via array access
$this->request['url']['page'];

http://book.cakephp.org/2.0/en/controllers/request-response.html

答案 1 :(得分:22)

在Cake中执行此操作的标准方法是使用$this->params

$value1 = $this->params['url']['key1'];
$value2 = $this->params['url']['key2'];

根据CakePHP的书,“$ this-> params的最常见用途是访问通过GET或POST操作传递给控制器​​的信息。”

请参阅here

答案 2 :(得分:8)

现在我们有了CakePHP 3;您仍然可以在观看中使用$this->request->query('search')

在CakePHP 3.5 +中你可以使用 $this->request->getQuery('search')

http://book.cakephp.org/3.0/en/controllers/request-response.html#request-parameters

答案 3 :(得分:0)

您只能这样做以获取网址参数

$this->request->pass;  //Array of all parameters in URL

答案 4 :(得分:0)

根据CakePHP文档 Query String Parameters

// URL is /posts/index?page=1&sort=title
$page = $this->request->getQuery('page');

// Prior to 3.4.0
$page = $this->request->query('page');

要访问URL中的所有密钥,您必须使用

$data = $this->request->getQuery();
echo "<pre>";print_r($data ); die('MMS');

输出

<pre>Array
(
    [key1] => value
    [key2] => value
    ...........
)

答案 5 :(得分:0)

根据CakePHP 4.0.2

$ this-> request-> getQuery()

将为您提供整个查询字符串的数组

以及针对特定查询

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

https://book.cakephp.org/3/en/controllers/request-response.html