CakePHP 1.2 でデフォルト値の設定
CakePHP 1.2 にて、新規作成用のフォームにデフォルト値が入っていてほしい。適切な例とは言い難いが、仮に Userモデルを新規作成時に username のデフォルト値を設定してみる。その方法は3通りある。1つめの方法がシンプルで良さげ。
その1:テーブル定義からデフォルト値をセットする方法
あらかじめテーブルの定義時にデフォルト値を設定しておくと、モデル生成時にその値をセットしてくれる。
テーブル定義:
CREATE TABLE users ( id integer, username varchar(64) default 'hogehoge', password varchar(128), primary key (id) );
コントローラ:
<?php // モデル生成時、 username に 'hogehoge' が入っている。 $this->data = $this->User->create();
その2:モデル生成時にデフォルト値をセットする方法
Model::create() の第1引数でデフォルト値をセットする。
デフォルト値のパターンが複数ある場合に使う方法かな?
コントローラ:
<?php // 第1引数にデフォルト値をセット $this->data = $this->User->create(array('username' => 'hogehoge'));
その3:フォームヘルパーでデフォルト値をセットする方法
ビュー:
<?php // 第2引数に 'default' を指定する $form->input('User.username', array('default' => 'hogehoge'));
でも、なんか気持ち悪い。(デフォルト値の変更のとき、わざわざビューを修正したくない)