CakePHPのセレクトメニューでよく使う配列

Shunsuke Sawada

よく使うけど、よく忘れるのでメモ。

こういう時です。

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になっているので注意ですよ。

5
Shunsuke Sawada

おすすめの記事

CakePHP 2.x JSヘルパーでajax通信(ajax helperは使わない)
20
Rails4でQiita投稿ボタンをつくった
18
紙のデザイナーがウェブ開発できるようになるまでに必要なこと
451