0

ユーザー名が既に使用されていることをアプリで検出して変更したい。実際、ユーザーが自分自身を登録するとき、彼は姓と名を入力し、ユーザー名は lastName.firstName です。ユーザー名が既に使用されていることを検出する方法と、それを変更する方法 (たとえば、番号を追加する) は?

ありがとう。

4

2 に答える 2

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();
}
于 2016-04-19T07:51:51.873 に答える