CakePHPのセレクトメニューでよく使う配列
よく使うけど、よく忘れるのでメモ。
こういう時です。
1
2
3
4
5
6
<?php
echo $this->form->input('Model.field', array(
'div'=>false,
'label'=>false,
'options'=>$options ));
?>
Formヘルパーのselectを使いたくて、その中のoptionにセットする値を配列で渡したいぜって時。
Viewに書くのはいやだから、コントローラーで配列にして
$this->set('options', $options); とかで渡すのが便利ですよね。
そしてその配列はこうなってなきゃいけない。
1
2
3
4
5
array(
key1 => val1;
key2 => val2;
key3 => val3;
);
$options[] += $value;
とかあるけど、なんかややっこしい。
これが一番分かりやすい。
1
2
3
$key_array = (key1, key2, key3);
$val_array = (val1, val2, val3);
$options = array_combine ($key_array, $val_array);
これでこうなる。
1
2
3
4
5
array(
key1 => val1;
key2 => val2;
key3 => val3;
);
それでViewではこうなる。
1
2
3
4
5
<select>
<option value="key1">val1</option>
<option value="key2">val2</option>
<option value="key3">val3</option>
</select>
optionのvalueはvalじゃなくて、keyになっているので注意ですよ。