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

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

2009-11-22

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

ユーザー作成の際にusernameを自動で登録したい場合があるかもしれません。
そんな時は、モデルのafterSaveメソッドを使って一発登録することができます。

  1. // APP/models/user.php  
  2. function afterSave($created)  
  3. {  
  4.   // 新規登録時自動的にusernameを作成  
  5.   if ($created) {  
  6.     $username = $this->createUsername();  
  7.     $this->saveField('username'$username);  
  8.   }  
  9. }  
  10.   
  11. function createUsername()  
  12. {  
  13.   // ランダムでユーザー名を作成するコード  
  14. }  


コントローラで$this->User->save($data)を実行すれば、自動的にユーザー名を登録することができます。

Model::afterSaveメソッドの引数$createdは
INSERT時にはtreu、それ以外の場合はfalseが代入されます。
このサンプルの場合、ユーザー情報を編集してもユーザー名は変更されません。

人気のエントリー