そんな時は、モデルのafterSaveメソッドを使って一発登録することができます。
- // APP/models/user.php
- function afterSave($created)
- {
- // 新規登録時自動的にusernameを作成
- if ($created) {
- $username = $this->createUsername();
- $this->saveField('username', $username);
- }
- }
- function createUsername()
- {
- // ランダムでユーザー名を作成するコード
- }
コントローラで$this->User->save($data)を実行すれば、自動的にユーザー名を登録することができます。
Model::afterSaveメソッドの引数$createdは
INSERT時にはtreu、それ以外の場合はfalseが代入されます。
このサンプルの場合、ユーザー情報を編集してもユーザー名は変更されません。