foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

CakePHP select のタグに使うデータを生成する

環境

問題

html select タグに使うデータを生成したい。

解決方法

cake 1.1 以前は generateList() を使ったけど、1.2 以降は find() で直接取得する。

<?php
$categories = $this->Category->find('list');
?>

ここで項目名として取得されるフィールドは、'fields' オプションで指定することもできる。

<?php
$categories = $this->Category->find('list', array(
    'fields' => array('id', 'name'),
));
?>

あるいは予めモデルに定義しておくこともできる。

<?php
class Category extends AppModel {
    var $displayField = 'name';
}
?>