CakePHP:如何发送$_GET参数,如id[]=1&;id[]=2&;id[]=3

CakePHP:如何发送$_GET参数,如id[]=1&;id[]=2&;id[]=3,php,cakephp,cakephp-2.5,Php,Cakephp,Cakephp 2.5,当具有以下代码时: <?= $this->Html->link('Foobar', ['?' => ['id' => [1, 2, 3]]] ?> 如果没有像0、1、2这样的数组索引,如何获得(更常用的)语法 %5B和[?(是的,我知道,这是url转义的)之间有什么区别吗 你试过这个吗 <?= $this->Html->link('Foobar', ['?' => ['id' => ['1,2,3']]] ?> 看起来,

当具有以下代码时:

<?= $this->Html->link('Foobar', ['?' => ['id' => [1, 2, 3]]] ?>
  • 如果没有像0、1、2这样的数组索引,如何获得(更常用的)语法
  • %5B和[?(是的,我知道,这是url转义的)之间有什么区别吗
  • 你试过这个吗

    <?= $this->Html->link('Foobar', ['?' => ['id' => ['1,2,3']]] ?>
    

    看起来,CakePHP在内部使用php的方法。如官方文档中所述,此方法以以下格式输出数组:

    …id%5B0%5D=1&amp;id%5B1%5D=2&amp;id%5B2%5D=3
    

    在php术语中,url中的%5B和[是相同的。当php构建$\u-GET时,所有内容都会被url解码,因此在处理$\u-GET时,您永远不会看到%5B。实际上,编码版本是3倍大,如果您添加了“很多”,可能会导致url被截断url的这些参数中,浏览器对url有长度限制。这不是我想要的输出。这将导致id[]=1,2,3,而不是id[]=1&id[]=2&id[]=3为什么投反对票!?你本来可以这样解释的。请看我的更新答案。嗨@burzum!我在问题本身中直接解释了首选语法。因此,不应该有任何疑问“正确”输出应该是这样的。以上述格式通过get参数传递数组值是很常见的。php的http_build_查询方法是相同的:(这可能是我问题的答案)
    …id%5B0%5D=1&amp;id%5B1%5D=2&amp;id%5B2%5D=3