CakePHP:如何发送 $_GET 参数,如 id[]=1&id[]=2&id[]=3
CakePHP: How to send $_GET params like id[]=1&id[]=2&id[]=3
当有以下代码时:
<?= $this->Html->link('Foobar', ['?' => ['id' => [1, 2, 3]]] ?>
输出如下:
…id%5B0%5D=1&id%5B1%5D=2&id%5B2%5D=3
- 如何在没有像 0、1、2 这样的数组索引的情况下获得(更常用的)语法。
- %5B和[有区别吗? (是的,我知道,它被 url 转义了)
你试过吗?
<?= $this->Html->link('Foobar', ['?' => ['id' => ['1,2,3']]] ?>
我认为您尝试其他方式没有多大意义。只需在服务器端对字符串进行 explode() 操作,你的数组就会变得不那么乱七八糟,而且很长 URL.
我猜想您正在尝试,或者至少看起来是这样,通过发送表单数据得到。很明显,HtmlHelper 的默认 link (它是 link 而不是表单!)方法不会 这样做,因为您必须指定重复数组键。
尝试使用 FormHelper::postLink() 方法并将方法设置为 get
。如果这不起作用,请扩展 Form 或 HtmlHelper 并通过重载方法或添加新方法来实现您需要的内容。
看起来,CakePHP 正在内部使用 php 的 http_build_query 方法。如官方文档中所述,此方法输出以下格式的数组:
…id%5B0%5D=1&id%5B1%5D=2&id%5B2%5D=3
当有以下代码时:
<?= $this->Html->link('Foobar', ['?' => ['id' => [1, 2, 3]]] ?>
输出如下:
…id%5B0%5D=1&id%5B1%5D=2&id%5B2%5D=3
- 如何在没有像 0、1、2 这样的数组索引的情况下获得(更常用的)语法。
- %5B和[有区别吗? (是的,我知道,它被 url 转义了)
你试过吗?
<?= $this->Html->link('Foobar', ['?' => ['id' => ['1,2,3']]] ?>
我认为您尝试其他方式没有多大意义。只需在服务器端对字符串进行 explode() 操作,你的数组就会变得不那么乱七八糟,而且很长 URL.
我猜想您正在尝试,或者至少看起来是这样,通过发送表单数据得到。很明显,HtmlHelper 的默认 link (它是 link 而不是表单!)方法不会 这样做,因为您必须指定重复数组键。
尝试使用 FormHelper::postLink() 方法并将方法设置为 get
。如果这不起作用,请扩展 Form 或 HtmlHelper 并通过重载方法或添加新方法来实现您需要的内容。
看起来,CakePHP 正在内部使用 php 的 http_build_query 方法。如官方文档中所述,此方法输出以下格式的数组:
…id%5B0%5D=1&id%5B1%5D=2&id%5B2%5D=3