Yii2在创建

时间:2016-04-19 07:26:10

标签: yii2 yii2-basic-app yii2-user yii2-validation

我希望我的应用能够检测用户名何时被删除并进行更改。事实上,当用户注册自己时,他输入他的姓氏和名字,用户名是lastName.firstName。如何检测用户名以及如何更改(例如添加数字)?

感谢。

2 个答案:

答案 0 :(得分:1)

所以你应该覆盖beforeValidate()函数,下面是我的示例代码:

/**
 * @inheritdoc
 */
public function beforeValidate()
{
    /** your code here **/

    $isExist = static::find()->where(['username' => $this->username])->count();

    if($isExist){
        //Count total rows with the similar username
        $total = static::find()->where(['LIKE','username', "{$this->username}%"])->count();
        //We will add $total + 1 to the username so we have new unique username
        $this->username .= '-' . ($total+1); 
    }

    return parent::beforeValidate();
}

答案 1 :(得分:0)

您使用的用户模块是什么?它是dektrium/yii2-user模块吗?

我们可以覆盖用户模型类并覆盖beforeValidate函数,以便在保存之前检测并更改用户名。