使用Cakephp 1.3中的表单助手,我试图显示一个列表(下拉列表),其中包含几个重复的值字段(当然在<option>
标签中),但是蛋糕似乎不想要让我这样做,只输出每个值的第一次出现。
例如,这是$ form-&gt;输入的'options'数组:
array(
0 => 'description 0',
0 => 'description 1',
0 => 'description 2',
1 => 'description 3'
);
这将输出如下内容:
<select>
<option value="0">description 0</option>
<option value="1">description 3</option>
</select>
我正在寻找这个结果:
<select>
<option value="0">description 0</option>
<option value="0">description 1</option>
<option value="0">description 2</option>
<option value="1">description 3</option>
</select>
干杯,
尼古拉斯。
答案 0 :(得分:1)
当然,你不能在PHP的数组中使用相同的键两次。
但正如此article蛋糕所述,知道如何在2.x中创建具有相同值的多个键:
$options = array(
...
array('name' => 'United states', 'value' => 'USA'),
array('name' => 'USA', 'value' => 'USA'),
);
$html = $this->Form->select('field', $options);
导致
<option value="USA">United states</option>
<option value="USA">USA</option>
正如你所看到的,你现在在这里获得了两次(或更多)的价值。
请参阅表单助手类本身(cake2.x)的文档。 但不确定1.3是否已经支持它。
如果你升级,你将能够利用蛋糕的所有最新魔力。
答案 1 :(得分:0)
因为担心这个问题比我初想的要深,而且它是由PHP引起的,它显然不允许重复密钥。
所以这是我的解决方案(如果有人对此感兴趣):
__selectOptions()
复制到新的帮助程序中foreach ($elements as $name => $title) {
foreach ($elements as $title => $name) {
这不是最好的解决方案,就好像你想要将cakephp更新到最新版本后,你必须再次复制/粘贴该功能,并做同样的伎俩。
如何使用
options
数组:array('description' => 'key);
$form->input
$yourhelper->input
醇>
尼古拉斯。