0

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 &amp; Art</option>
<option value="2">Baby/Children Needs</option>
<option value="3">Boats/Marine/Fishing</option>
<option value="4">Books &amp; Magazines</option> 
...

// I'd like it to output like this
<option value="164">Antiques &amp; Art</option>
<option value="83">Baby/Children Needs</option>
<option value="176">Boats/Marine/Fishing</option> 
<option value="222">Books &amp; Magazines</option> 
...
4

1 に答える 1

0

慣例に固執している場合は、 $this->Form->input('category_id') を実行できるはずであり、それは機能します (ビューに $categories を渡すことで)。Cake は select の値に配列のキーを使用するので、間違ったデータを渡す必要があります。

すべてのキーをリセットする配列で sort() を実行したと思います。キーをそのままにして値でソートするメソッド、 asort() iirc については、php マニュアルを参照してください。

于 2011-01-30T16:20:43.217 に答える