100], ['first_name', 'required'], ['first_name', 'string', 'max' => 100], ['username', 'trim'], ['username', 'required'], ['username', 'unique', 'targetClass' => '\api\models\User', 'message' => 'This username has already been taken.'], ['username', 'string', 'min' => 2, 'max' => 255], ['email', 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'targetClass' => '\api\models\User', 'message' => 'This email address has already been taken.'], ['password', 'required'], ['password', 'string', 'min' => 6], ]; } /** * Register user. * * @return User|null the saved model or null if saving fails */ public function register() { if (!$this->validate()) { return null; } $user = new User(); $user->username = $this->username; //$user->first_name = $this->first_name; //$user->last_name = $this->last_name; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); if($user->save()){ $profile = new Profile(); $profile->user_id = $user->id; $profile->first_name = $this->first_name; $profile->last_name = $this->last_name; $profile->photo = $profile->uploadPhoto($profile, 'photo'); $profile->save(); return $user; } return null; } }