如何在CAKEPHP中访问GET请求?

如何在CAKEPHP中访问GET请求?,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,如何在CAKEPHP中访问GET请求 如果我在url中传递一个变量 http://samplesite.com/page?key1=value1&key2=value2 我应该使用$\u GET还是$this->params来获取控制器中的值? CAKEPHP的标准是什么 在Cake中执行此操作的标准方法是使用$this->params $value1 = $this->params['url']['key1']; $value2 = $this->params['url'

如何在CAKEPHP中访问GET请求

如果我在url中传递一个变量

http://samplesite.com/page?key1=value1&key2=value2
我应该使用$\u GET还是$this->params来获取控制器中的值?
CAKEPHP的标准是什么

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

$value1 = $this->params['url']['key1'];
$value2 = $this->params['url']['key2'];
根据CakePHP的书,“$this->params最常用的用法是访问通过GET或POST操作传递给控制器的信息。”


请参阅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'];

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

在CakePHP3.5+中,您可以使用
$this->request->getQuery('search')


您只能在获取URL参数时执行此操作

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

根据CakePHP文档

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

$data = $this->request->getQuery();
echo "<pre>";print_r($data ); die('MMS');
$data=$this->request->getQuery();
回声“;打印(数据);死亡(“MMS”);
输出

数组
(
[key1]=>值
[key2]=>值
...........
)

根据CakePHP 4.0.2

$this->request->getQuery()

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

和用于特定查询

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


谢谢你,伙计。。。我是否应该避免在cakephp中使用$\u GET?@cakephp.saint是的,我在Cake工作时通常不会直接访问$\u GET或$\u POST。我刚刚更新了我的答案,添加了手册的链接。谢谢。救援有时不在第一篇文章中,但在第二篇文章中:DOr甚至$this->request->query('page');而不是$this->request->query['page'];需要它吗:如果($this->request->Is('get')){$this->request->query['page'];}或者我可以只:$this->request->query['page'];
$data = $this->request->getQuery();
echo "<pre>";print_r($data ); die('MMS');
<pre>Array
(
    [key1] => value
    [key2] => value
    ...........
)