示例#1
0
 public function editAction()
 {
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!$id) {
         return $this->redirect()->toRoute('admin/users', array('action' => 'add'));
     }
     $user = $this->getUsersTable()->getUser($id);
     if ($user == false) {
         $this->flashMessenger()->addErrorMessage('User not found..!!');
         return $this->redirect()->toRoute('admin/users');
     }
     $vm = new ViewModel();
     $tableGateway = $this->getServiceLocator()->get('Admin\\Model\\UsertypeTable');
     $user_form = new UsersForm($tableGateway, $this->getServiceLocator()->get('Admin\\Model\\StatesTable'), $this->getServiceLocator()->get('Admin\\Model\\CountriesTable'), $this->getServiceLocator()->get('Admin\\Model\\StatusTable'), $this->getServiceLocator()->get('Admin\\Model\\ServiceLanguagesTable'), $this->getUsersTable()->getConsumerServiceLanguage($id, true), $user->country_id);
     //$form  = new UsersForm();
     $user_form->bind($user);
     $user_form->get('submit')->setAttribute('value', 'Edit');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user->getInputFilter()->get('pass')->setRequired(false);
         if ($request->getPost('pass') == '') {
             $user->getInputFilter()->get('c_pass')->setRequired(false);
         }
         $user->getInputFilter()->get('user_name')->getValidatorChain()->attach(new \Zend\Validator\Db\NoRecordExists(array('table' => 'users', 'field' => 'user_name', 'adapter' => $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'), 'exclude' => array('field' => 'id', 'value' => $id))));
         $user->getInputFilter()->get('email')->getValidatorChain()->attach(new \Zend\Validator\Db\NoRecordExists(array('table' => 'users', 'field' => 'email', 'adapter' => $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'), 'exclude' => array('field' => 'id', 'value' => $id))));
         //echo '<pre>'; print_r($user->getInputFilter()->get('email')); exit;
         $user_form->setInputFilter($user->getInputFilter());
         $user_form->setData($request->getPost());
         if ($user_form->isValid()) {
             //echo '<pre>'; print_r($this->errors); exit;
             $this->getUsersTable()->saveUser($user_form->getData(), '', $request->getPost('service_language_id'));
             $this->flashMessenger()->addSuccessMessage('User updated successfully..!!');
             // Redirect to list of pages
             return $this->redirect()->toRoute('admin/users');
         } else {
             $this->errors = $user_form->getMessages();
         }
     }
     return array('id' => $id, 'errors' => $this->errors, 'user_form' => $user_form);
 }