14
3月
CakePHPでDBデータからセレクトボックス作成
DBから取得したデータをセレクトボックスのオプションにする場合、CakePHP1.1ではgenerateListを使用して以下のように書きます。
$this->Model->generateList($conditions, $order, $limit, $keyPath, $valuePath);
引数の意味は
- $conditions…検索条件
- $order…ソート順
- $limit…取得上限数
- $keyPath…オプションのキーに設定するカラム
- $valuePath…オプションの値に設定するカラム
実際の使用例は以下のようになります。
まずコントローラでgenerateListを使用してDBからセレクトボックスのオプションに利用するデータを取得しviewへ渡します。
$option = $this->Role->generateList(null, 'role_name ASC', null, '{n}.Role.id', '{n}.Role.role_name');
$this->set('option', $option);
次にviewで以下のように書けば完了です。
<?php echo $html->selectTag('Post/question', $option, null, null, null); ?>
ただしCakePHP1.2ではgenerateListは非推奨になったようです。CakePHP1.2では$this->Role->generateListではなく$this-> Role->find(‘list’)と書けば済むようです。
タグ
CakePHP, generateList, セレクトボックス関連する投稿
コメントはまだありません
コメントはまだありません。