我正在使用 FormHelper (cake 1.3) 从数组中创建一个选择框。该数组使用数字作为键,但选择框会忽略这些数字,并为选择框选项值使用从零开始的索引。我尝试使用 (string)$key 和 strval($key) 将数组键键入字符串,但没有成功。当我在数字键(即 'c'.$key )之前添加一个字母时,选择选项起作用,但我想避免这种黑客攻击。
有没有办法强制 FormHelper 使用实际的数字键而不加字母?任何帮助,将不胜感激。
请参阅以下代码进行说明:
// $category_list looks like this
Array
(
[164] => Antiques & Art
[83] => Baby/Children Needs
[176] => Boats/Marine/Fishing
[222] => Books & Magazines
[287] => Building Materials
[215] => Business
[175] => Caravans & Motor Homes
[169] => Cars & Other Vehicles
[127] => Clothing & Accessories
[92] => Computers & Electronics
[358] => Farm & Agriculture
[235] => Garage Sales/Yard Sales
[309] => Garden & Yard
[178] => General Merchandise
[138] => Health & Beauty
[186] => Hobbies & Collectables
[63] => Household
[234] => Information
[388] => Motorbikes & Scooters
[206] => Musical Instruments
[449] => Notices
[305] => Pets and Accessories
[242] => Positions Vacant
[236] => Real Estate & Rentals
[243] => Services
[143] => Sports Equipment
[308] => Tools & Equipment
[300] => Travel & Holiday
)
// Output category select box
echo $form->select(
'category',
$category_list,
$category,
array('id'=>'SearchCategories')
);
// Outputs like this
<option value="1">Antiques & Art</option>
<option value="2">Baby/Children Needs</option>
<option value="3">Boats/Marine/Fishing</option>
<option value="4">Books & Magazines</option>
...
// I'd like it to output like this
<option value="164">Antiques & Art</option>
<option value="83">Baby/Children Needs</option>
<option value="176">Boats/Marine/Fishing</option>
<option value="222">Books & Magazines</option>
...