cakePHPはDBからデータを取得した後フォームに値を反映させておくためには用意されているフォームヘルパーを使うと便利です。
<?php echo $this->Form->control('num'); ?>
こうすることでDBから取得したカラム名がnumの値をフォームの中に予め入れてくれます。編集画面を作るときはとても便利です。
ただ、値の中身を見ることで自動でフォームを区別して生成してくれるわけではありません。
選択フォームを生成したい場合、ヘルパーに任意のパラメーターを追加してあげる必要があります。
今回はセレクトフォームで悩んでしまったために記録します。
<?php echo $this->Form->control('name名', ['type' => 'select', 'options' => ['val1', 'val2', 'val3']]); ?>
第二引数に配列でキーをtypeにしてinputのtypeを指定します。ここにselectといれると、生成されるフォームがselectになります。選択肢はoptionsというキー名にして、さらに配列で選択肢を追加します。
この方法ではDBから取り出したデータを反映させるためのときに使うものですが、DB情報特に必要なく予め選択させたいためだけのセレクトフォームを作る場合は以下の方法でも可能です。
<?php
$options = ['val1', 'val2', 'val3'];
echo $this->Form->select('type', $options, $setting);
?>
第三引数にその他の属性を設定することができます。