public function atualizarAction()
 {
     // obtém a requisição
     $request = $this->getRequest();
     // verifica se a requisição é do tipo post
     if ($request->isPost()) {
         // instancia formulário
         $form = new UsuarioForm();
         // instancia model usuario com regras de filtros e validações
         $modelUsuario = new Usuario();
         // passa para o objeto formulário as regras de viltros e validações
         // contidas na entity usuario
         $form->setInputFilter($modelUsuario->getInputFilter());
         // passa para o objeto formulário os usuario vindos da submissão
         $form->setData($request->getPost());
         // verifica se o formulário segue a validação proposta
         if ($form->isValid()) {
             // aqui vai a lógica para atualizar os usuarios à tabela no banco
             // 1 - popular model com valores do formulário
             $modelUsuario->exchangeArray($form->getData());
             // 2 - atualizar usuarios do model para banco de usuarios
             $this->getUsuarioTable()->update($modelUsuario);
             // adicionar mensagem de sucesso
             $this->flashMessenger()->addSuccessMessage("Usuario editado com sucesso");
             $nome_cache_usuario_id = "nome_cache_usuario_{$modelUsuario->id_usuario}";
             if ($this->cache()->hasItem($nome_cache_usuario_id)) {
                 $this->cache()->removeItem($nome_cache_usuario_id);
             }
             // redirecionar para action detalhes
             return $this->redirect()->toRoute('usuarios', ["action" => "main", "id" => $modelUsuario->id_usuario]);
         } else {
             // em caso da validação não seguir o que foi definido
             // renderiza para action editar com o objeto form populado,
             // com isso os erros serão tratados pelo helpers view
             return (new ViewModel())->setVariable('formUsuarios', $form)->setTemplate('usuario/usuarios/editar');
         }
     }
 }
 public function editarusuarioAction()
 {
     $auth = new \Zend\Authentication\AuthenticationService();
     if (!$auth->hasIdentity()) {
         return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/usuario/index/login');
     }
     $comidas = $this->roles()->toArray();
     $com = array();
     foreach ($comidas as $y) {
         $com[$y['in_id']] = $y['va_nombre_rol'];
     }
     $id = $this->params()->fromQuery('id');
     if (!$id) {
         return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/usuario/index/agregarusuario');
     }
     try {
         $usuario = $this->getUsuarioTable()->getUsuario($id);
     } catch (\Exception $ex) {
         return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/usuario');
     }
     $form = new UsuarioForm();
     $form->get('va_contrasenia2')->setValue($usuario->va_contrasenia);
     $form->get('Ta_rol_in_id')->setValueOptions($com);
     $form->bind($usuario);
     $form->get('submit')->setAttribute('value', 'MODIFICAR');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $datos = $this->request->getPost();
         //var_dump($datos);exit;
         $pass1 = $datos['va_contrasenia'];
         $pass2 = $datos['va_contrasenia2'];
         $form->setInputFilter($usuario->getInputFilter());
         $form->setData($request->getPost());
         if (!$form->isValid()) {
             // echo 'ddd';exit;//
             if ($pass1 == $pass2) {
                 $this->getUsuarioTable()->guardarUsuario($datos);
                 $this->redirect()->toUrl('/usuario');
             }
         } else {
             foreach ($form->getInputFilter()->getInvalidInput() as $error) {
                 print_r($error->getMessages());
             }
         }
     }
     return array('in_id' => $id, 'form' => $form, 'pass' => $usuario->va_contrasenia);
 }