我是我網站的管理員。當我註冊新用戶時,我想將我的用戶名添加到新用戶名。如:如何在yii中添加一些字給用戶名?
我的用戶名:經理
新的用戶名:測試
結果:manager_test
我想驗證結果。我用beforevalidate(),並添加自己的用戶名是:
protected function beforeValidate()
{
$this->username = Yii::app()->user->name.'_'.$this->username;
return parent::beforeValidate();
}
但一些存儲到數據庫是:manager_manager_manager_test。其實我的程序在3次驗證之前調用。
我該怎麼辦?我想在beforevalidate函數之前讀一次。
感謝您的回答。我用你的建議,但我有一個問題。當我整個重複的用戶名,我無法處理我的錯誤,我看到apge與下面的錯誤: 'CDbException CDbCommandدراجرایSQL語句:SQLSTATE [23000]:完整性約束違規:1062重複條目'demo_ITC3'for關鍵'用戶名'。' –
您可以指定自定義驗證。添加模型函數: public function checkUsername($ attribute,$ params) {userModel = User :: model() - > find('username =:username',array(':username'=> Yii: :應用程序() - >用戶>名稱.'_」 $這個 - >用戶名))。 if(!is_null($ userModel)){this-> addError(屬性,「同名用戶存在」); } } 並在規則數組中添加此規則: array('username','checkUsername'), – Goodnickoff
非常感謝。它正常工作:) –