AJAX валидация форм на сайте в Yii 2.x

При регистрации на сайте, проверка имени пользователя проводится на стороне сервера, т.к только сервер имеет информацию о пользователях. Рассмотрим пример AJAX валидации формы. Опишем модель.

   namespace app\models;
   use Yii;
   use yii\base\Model;
   class RegistrationForm extends Model {
      public $username; // имя пользователя
      public $password; // пароль
      public $email; // электронный адрес
      public function rules() {
         return [
             [ ['username' ,'password', 'email'], 'required'], // поля обязательные для заполнения
            ['email', 'email'], // поле email должно быть электронным адресом
         ];
      }
   }

Добавим функцию actionRegistration() в контроллер

public function actionRegistration() { 
   $model = new RegistrationForm(); 
   if (Yii::$app->request->isAjax && $model->load(Yii::$app->request>post())) {  // если получаем AJAX и POST запрос
      Yii::$app->response->format = Response::FORMAT_JSON; 
      return ActiveForm::validate($model); // выполняем валидацию формы 
   } 
   return $this->render('registration', ['model' => $model]); // передаем модель в представление
}

Добавляем форму в представление

   use yii\bootstrap\ActiveForm;
   use yii\bootstrap\Html;

    $form = ActiveForm::begin(['id' => 'registration-form']); // виджет формы
      echo $form->field($model, 'username'); // имя пользователя
      echo $form->field($model, 'password')->passwordInput(); // пароль
      echo $form->field($model, 'email')->input('email'); // электронный адрес
      echo Html::submitButton('Зарегистрироваться', ['class' => 'btn btn-primary', 'name' => 'registration-button']); // кнопка регистрации
   ActiveForm::end(); // закрываем форму