CakePHP2.x系のデータ入力フォームでマスタの値をセレクトボックスで選択出来るようにしました。
例.User登録ページ
ユーザ登録する際にクラスとタイプを設定したいのですが、クラスマスタとタイプマスタが存在する為、そちらの値をセレクトボックスに表示したい場合を例にします。
1. addページ(データ入力)add.ctp
1 2 3 4 5 6 7 8 |
<h1>Add User</h1> <?php echo $this->Form->create('User'); echo $this->Form->input('name'); <span style="color: #ff0000;">echo $this->Form->input('class_id', array('label' => 'クラス', 'empty' => 'なし'));</span> <span style="color: #ff0000;">echo $this->Form->input('type_id');</span> echo $this->Form->end('Save User'); ?> |
※上記のようにオプションでlabel名や、empty(選択なし)を設定出来ました。
2. UsersController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php class UsersController extends AppController { <span style="color: #ff0000;"> public $uses = array('Class', 'Type');</span> public $helpers = array('Html', 'Form'); public $components = array('Flash'); public function add() { // マスタ設定 <span style="color: #ff0000;"> $this->set('classes', $this->Class->find('list'));</span> <span style="color: #ff0000;"> $this->set('types', $this->Type->find('list'));</span> if ($this->request->is('user')) { $this->User->create(); if ($this->User->save($this->request->data)) { $this->Flash->success(__('user has been saved.')); return $this->redirect(array('action' => 'index')); } $this->Flash->error(__('Unable to add user.')); } } |
こちらの自主開発で必要だったので調べました。
コメント
[…] CakePHP2.x系データ入力フォームでマスタの値をセレクトボックスで選択出来…CakePHP2.x系のデータ入力フォームでマスタの値をセレクトボックスで選択出来るようにしました。 例.User登録ページ ユーザ登録…normalblog.net2016-09-14 01:42 […]