【CakePHP】セレクトボックスの作り方&注意点

フォームヘルパーを使ってセレクトボックスを作るときはズバリ、以下の通りに書けば出来ます。

echo $this->Form->input('field', array(
    'options' => array('りんご', 'みかん', 'バナナ'),
));

$this->Form->inputの第2引数の配列に'options'というキーを追加して、
配列を値にすればいいわけです。

 

ところがこの場合、実際にセレクトボックスの選択肢としては
「りんご」、「みかん」、「バナナ」が表示されるのですが
データベースに登録されるデータは順に「1」、「2」、「3」という数字になってしまいます。

つまり実際にデータベースに送信されるのは配列の値でなくキー(1から始まる?)が送信されているわけです。

 

なのでセレクトボックスの表示内容と送信されるデータを同じにしたいときは
キーを明示的に指定してやればOKです。
(もちろん意図的にキーと値をばらしてもOK)

echo $this->Form->input('field', array(
    'options' => array('りんご'=>'りんご', 'みかん'=>'みかん', 'バナナ'=>'バナナ'),
));