public function addUserAction() { $request = $this->getRequest(); $registerForm = new RegisterForm(); // var_dump($registerForm);die; if ($request->isPost()) { //recibimos los datos del form $postData = $request->getPost(); // var_dump($postData);die; //validamos los datos enviados $registerValidator = $registerForm->setInputFilter(new RegisterValidator($this->getServiceLocator())); $registerValidator->setData($postData); // var_dump($registerValidator->isValid());die; if ($registerValidator->isValid()) { //si son validados continuamos //obtenemos los datos validados y filtrados $registerData = $registerValidator->getData(); $customerPrepareData = $this->prepareDataCustomer($registerData); //incializamos la clase Entity Customer y le inyectamos los datos $userEntity = new User($customerPrepareData); //traemos el servicio CustomerTableGateway el cual nos trae el Adapter de la DB $userTableGateway = $this->getService('UserTableGateway'); //inicializamos la clase CustomerDao y le inyectamos el Adapter $userDao = new UserDao($userTableGateway); //Salvamos el registro en la bd $saved = $userDao->saveUser($userEntity); // print_r($saved);die; if ($saved) { //si se guardo la fila en la BD continuamos //enviamos el mail con $sendMail = $this->sendMailRegisterConfirm($userEntity); //seteamos el mesanje de registro exitoso $this->flashMessenger()->addMessage("Registro exitoso!!. Acabamos de enviarle un correo a {$userEntity->email} para confirmar su cuenta", 'success'); //$this->flashMessenger()->addMessage("Bienvenido $customerEntity->firstname $customerEntity->lastname !!. Acabamos de enviarle un correo de confirmacion ", 'success'); return $this->redirect()->toRoute('account'); } else { $this->flashMessenger()->addMessage("Disculpe no pudimos procesar su registro ", "error"); // throw new \Exception("Not Save Row"); return $this->redirect()->toRoute('account'); } } else { $messages = $registerValidator->getMessages(); //print_r($messages);die; $this->flashMessenger()->addMessage($messages, 'error'); return $this->redirect()->toRoute('account'); } } }
/** * the registration action- Either returns the registration page or adds an account to the db and sends out an email. * * @return array|\Zend\Http\Response */ public function registerAction() { $form = new RegisterForm(); $form->get('submit')->setValue('Register'); $request = $this->getRequest(); if ($request->isPost()) { $account = new Account(); $form->setInputFilter($account->getRegisterInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $account->exchangeArray($form->getData()); if (!$this->getAccountTable()->getAccountBy(['name' => $account->getName()])) { if (!$this->getAccountTable()->getAccountBy(['email' => $account->getEmail()])) { $account->setUserHash(hash('sha256', $account->getName())); $this->getAccountTable()->saveAccount($account); $this->sendConfirmationMail($account); } else { return ['form' => $form, 'errors' => $errors = ['email' => 'email_taken']]; } } else { return ['form' => $form, 'errors' => $errors = ['name' => 'name_taken']]; } return $this->redirect()->toRoute('auth', ['action' => 'registersuccess']); } else { $errors = $form->getMessages(); return ['form' => $form, 'errors' => $errors]; } } return ['form' => $form]; }