読者です 読者をやめる 読者になる 読者になる

【CakePHP 2.x】入力フォームでエラー時の入力値を保持する

CakePHPで入力フォームを作成する場合、
フォームをFormヘルパーで作成すると、
エラー時などに入力値を保持してくれる。

例えば、ユーザー登録画面を作成する場合、
ユーザーのメールアドレスをユニークチェックすることがある。
同じメールアドレスが存在する場合は、
「メールアドレスが重複しています」みたいにエラー表示して
再度入力フォームを表示されると思う。
この時に入力値が保持されてないと再入力することになる。

CakePHPでは フォームヘルパー を使うと、
その入力値を保持してくれる。
別にフォームヘルパーと使わなくても
フォーム が 「 name="data[User][name]"」みたいな配列構造であれば、
勝手に値をバインドしてくれるのかな・・・。
分からんけど。

ポイントとしては、フォームにデフォルト値を指定する時に
以下のように value を使うと、入力値が反映されない。
valueの値になってしまう・・・。

$this->form->input('User.name', array('type'=>'text', 'value'=>'test_name'));

そーゆー時は以下のように default を使うといい。

$this->form->input('User.name', array('type'=>'text', 'default'=>'test_name'));


実はこれ、今まで知らなかった・・・。
全部自分で作ってた・・・。
最近は簡単なフォームだと普通にHTMLで書く傾向にあったけど、
ちゃんと フォームヘルパー 使ったほうがいい・・・。
フレームワークについて学ぶって大事だと思った。