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’)と書けば済むようです。


タグ

, ,

関連する投稿

コメントはまだありません

コメントはまだありません。

コメントを書く

コメントRSS   トラックバックURL

?>-->