/** * @param $request * @return array of validation messages */ protected function validateRegisterRequest($request) { $messages = array(); // email validations $emailNotEmpty = new \Zend\Validator\NotEmpty(); $emailNotEmpty->setMessage('Email cannot be empty', \Zend\Validator\NotEmpty::IS_EMPTY); $emailValidEmail = new \Zend\Validator\EmailAddress(); $emailValidEmail->setMessage('User email is not a valid email address. Use the basic format local-part@hostname', \Zend\Validator\EmailAddress::INVALID_FORMAT); $emailChain = new \Zend\Validator\ValidatorChain(); $emailChain->attach($emailValidEmail); // is unique $user = $this->em()->getRepository('\\Application\\Entity\\User')->findBy(array('email' => $request['email'])); if (count($user)) { $messages[] = "User with this email already exists"; } // password validations $passwordNotEmpty = new \Zend\Validator\NotEmpty(); $passwordNotEmpty->setMessage("User password cannot be empty", \Zend\Validator\NotEmpty::IS_EMPTY); $passwordStringLength = new \Zend\Validator\StringLength(['min' => 4, 'max' => 20]); $passwordStringLength->setMessage("User password is less than %min% characters long", \Zend\Validator\StringLength::TOO_SHORT); $passwordStringLength->setMessage("User password is more than %max% characters long", \Zend\Validator\StringLength::TOO_LONG); $passwordChain = new \Zend\Validator\ValidatorChain(); $passwordChain->attach($passwordNotEmpty)->attach($passwordStringLength); if (!$passwordChain->isValid($request['password'])) { $messages = array_merge($messages, $passwordChain->getMessages()); } if (!$emailChain->isValid($request['email'])) { $messages = array_merge($messages, $emailChain->getMessages()); } return $messages; }
public function __construct() { $input = new \Zend\InputFilter\Input('username'); // Validadores $v = new \Zend\Validator\StringLength(array('min' => 3, 'max' => 50)); $v->setMin(3); $v->setMessage('Username Invalid', \Zend\Validator\StringLength::TOO_SHORT); $input->setRequired(true); $input->getValidatorChain()->attach($v); $this->add($input); $input = new \Zend\InputFilter\Input('password'); // Validadores $v = new \Zend\Validator\StringLength(array('min' => 1, 'max' => 50)); $v->setMessage('Clave Invalid', \Zend\Validator\StringLength::TOO_SHORT); $input->setRequired(true); $input->getValidatorChain()->attach($v); $this->add($input); }