如何在CAKEPHP中访问GET请求?
如果我在URL中传递变量
http://samplesite.com/page?key1=value1&key2=value2
我应该使用$ _GET或$ this-> params来获取控制器中的值吗? CAKEPHP的标准是什么?
答案 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