新しいブログに引っ越しました

tomotomoSnippetは新しいブログに移動しました
http://develtips.com/

2009-11-22

[CakePHP]Model::afterSaveでユーザー名を自動登録する

ユーザー作成の際にusernameを自動で登録したい場合があるかもしれません。
そんな時は、モデルの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が代入されます。
このサンプルの場合、ユーザー情報を編集してもユーザー名は変更されません。

人気のエントリー