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

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた