/** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return ['username' => ['type' => 'username', 'error' => '{auth.register.error.username.invalid}', 'required' => '{auth.register.error.username.required}', 'filters' => ['string.trim' => true], 'success' => function ($username, ValidationError $validationError, ValidationManager $validationManager) { if (!$this->userRepository->isUniqueUsername($username)) { $validationError->setError('{auth.register.error.username.not_unique}'); } }], 'email' => ['type' => 'email', 'error' => '{auth.register.error.email.invalid}', 'required' => '{auth.register.error.email.required}', 'filters' => ['string.trim' => true], 'success' => function ($email, ValidationError $validationError, ValidationManager $validationManager) { if (!$this->userRepository->isUniqueEmail($email)) { $validationError->setError('{auth.register.error.email.not_unique}'); } }], 'password' => ['type' => 'password', 'error' => '{auth.register.error.password.invalid}', 'required' => '{auth.register.error.password.required}'], 'password_confirmation' => ['type' => 'string', 'error' => '{auth.register.error.password_confirmation.not_match}', 'success' => function ($passwordConfirmation, ValidationError $validationError, ValidationManager $validationManager) { $password = $validationManager->getData('password'); if (empty($password) || !$validationManager->getValidationResult()->isValid('password')) { return; } if (empty($passwordConfirmation)) { $validationError->setError('{auth.register.error.password_confirmation.required}'); } else { if ($validationManager->getData('password') !== $passwordConfirmation) { $validationError->setError('{auth.register.error.password_confirmation.not_match}'); } } }]]; }