CakePHP2.x系データ入力フォームでマスタの値をセレクトボックスで選択出来るようにする

CakePHP2.x系データ入力フォームでマスタの値をセレクトボックスで選択出来るようにする

CakePHP2.x系のデータ入力フォームでマスタの値をセレクトボックスで選択出来るようにしました。

例.User登録ページ

ユーザ登録する際にクラスとタイプを設定したいのですが、クラスマスタとタイプマスタが存在する為、そちらの値をセレクトボックスに表示したい場合を例にします。

1. addページ(データ入力)add.ctp

<h1>Add User</h1>
<?php
echo $this->Form->create('User');
echo $this->Form->input('name');
echo $this->Form->input('class_id', array('label' => 'クラス', 'empty' => 'なし'));
echo $this->Form->input('type_id');
echo $this->Form->end('Save User');
?>

※上記のようにオプションでlabel名や、empty(選択なし)を設定出来ました。

2. UsersController.php

<?php
class UsersController extends AppController {
 public $uses = array('Class', 'Type');
 public $helpers = array('Html', 'Form');
 public $components = array('Flash');

public function add() {
 // マスタ設定
 $this->set('classes', $this->Class->find('list'));
 $this->set('types', $this->Type->find('list'));

 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.'));
 }
}

 

こちらの自主開発で必要だったので調べました。

1 Comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です