使用CakePHP 1.3中的表单帮助器,我试图显示一个列表(下拉列表),其中包含几个重复的值字段(当然是在<option>
标记中),但Cake似乎不想让我这样做,并且只输出每个值的第一个出现。
例如,下面是$form-〉输入的'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>
2条答案
按热度按时间svdrlsy41#
当然,在PHP中,同一个键不能在数组中使用两次。
但是正如在这个article蛋糕上所说的,知道如何在2.x中用相同的值创建多个键:
导致
如您所见,您现在在这里获得了两倍(当然也可能更多)的值。
请参阅表单帮助器类本身的文档(cake2.x)。但不确定1.3是否已经支持它。
如果你升级,你将能够利用所有的蛋糕的最新魔术。
daupos2t2#
因此,正如我所担心的,这个问题比我最初想象的要深,它是由PHP引起的,PHP(显然)不允许重复的键。
因此,我的解决方案如下(如果有人感兴趣的话):
1.建立新的Helper以扩充FormHelper
1.复制原始函数
__selectOptions()
从表单帮助器到新帮助器中1.只需更改此行:
foreach ($elements as $name => $title) {
个作者:
foreach ($elements as $title => $name) {
1."成交"
这不是最好的解决方案,因为如果你想更新你的cakephp到最新版本后,这样做,你必须复制/粘贴的功能再次,并做同样的伎俩。
使用方法:
1.以相反的方式声明您的
options
数组:array('description' => 'key);
1.在您看来,不要执行
$form->input
,而应该执行$yourhelper->input
尼可拉斯