public function updateAction()
 {
     $id = $this->params()->fromRoute('id');
     if (!$id) {
         return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-doctrine-dbal', 'action' => 'index'));
     }
     $form = new UserForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new UserFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             unset($data['submit']);
             if (empty($data['usr_registration_date'])) {
                 $data['usr_registration_date'] = '2013-07-19 12:00:00';
             }
             $this->getDoctrineConn()->update('users', $data, array('usr_id' => $id));
             return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-doctrine-dbal', 'action' => 'index'));
         }
     } else {
         // 			$sql = "SELECT * FROM users WHERE usr_id = ?";
         //			$stmt = $this->getDoctrineConn()->prepare($sql);
         //			$stmt->bindValue(1, 1);
         //			$stmt->execute();
         $form->setData($this->getDoctrineConn()->fetchAssoc('SELECT * FROM users WHERE usr_id = ?', array($id)));
     }
     return new ViewModel(array('form' => $form, 'id' => $id));
 }
 public function updateAction()
 {
     $id = $this->params()->fromRoute('id');
     if (!$id) {
         return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-result-set-bind', 'action' => 'index'));
     }
     $form = new UserForm();
     // $user = $this->getUsersTable()->select(array('usr_id' => $id))->current();
     $user = $this->getUsersTable()->getUser($id);
     //-		Error message: Zend\Stdlib\Hydrator\ArraySerializable::extract expects the provided object to implement getArrayCopy()
     $form->bind($user);
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new UserFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $this->getUsersTable()->update($user);
             // 1) The question remains open: How to save the user object to the DB. We Need a data mapper.
             // We need an object that can extract and hidrate our object
             // DataMapper will be better coze I can use it as a Repository for SQL statements also
             // or
             // 2) The object should extend or composit RowDataGateway and use the save and delete methods.
             // The object should know how to save iyself
             // ToDo replce with code that uses the users object datamapper or RowDatagateway
             // takes care of saving the data
             //-				$data = $form->getData();
             //-				unset($data['submit']);
             //-				if (empty($data['usr_registration_date'])) $data['usr_registration_date'] = '2013-07-19 12:00:00';
             //-				$this->getUsersTable()->update($data, array('usr_id' => $id));
             return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-result-set-bind', 'action' => 'index'));
         }
     }
     // we don't need to populate the form anymore it is done with bind
     return new ViewModel(array('form' => $form, 'id' => $id));
 }
 public function updateAction()
 {
     $id = $this->params()->fromRoute('id');
     if (!$id) {
         return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-row-gateway-feature-bind', 'action' => 'index'));
     }
     $form = new UserForm();
     $form->setHydrator(new ObjectProperty());
     $user = $this->getUsersTable()->select(array('usr_id' => $id))->current();
     $form->bind($user);
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new UserFilter());
         $form->setData($request->getPost());
         $form->remove('submit');
         if ($form->isValid()) {
             $user->save();
             return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-row-gateway-feature-bind', 'action' => 'index'));
         }
         $form->add(array('name' => 'submit', 'attributes' => array('type' => 'submit', 'value' => 'Go', 'id' => 'submitbutton')));
     } else {
         // ToDo find why the form doesn't get populated from the object directly and remove this line
         $form->setData($this->getUsersTable()->select(array('usr_id' => $id))->current()->toArray());
     }
     return new ViewModel(array('form' => $form, 'id' => $id));
 }
 public function updateAction()
 {
     $id = $this->params()->fromRoute('id');
     if (!$id) {
         return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-hydrating-result-set-bind', 'action' => 'index'));
     }
     $form = new UserForm();
     $form->setHydrator(new ReflectionHydrator());
     $user = $this->getUsersTable()->select(array('usr_id' => $id))->current();
     $form->bind($user);
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new UserFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             // ToDo raplace the code with something that uses user object
             $data = $form->getData();
             $hydrator = new ReflectionHydrator();
             $data = $hydrator->extract($data);
             // turn the object to array
             unset($data['submit']);
             if (empty($data['usr_registration_date'])) {
                 $data['usr_registration_date'] = '2013-07-19 12:00:00';
             }
             $this->getUsersTable()->update($data, array('usr_id' => $id));
             return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-hydrating-result-set-bind', 'action' => 'index'));
         }
     }
     return new ViewModel(array('form' => $form, 'id' => $id));
 }
示例#5
0
 public function updateAction()
 {
     $id = $this->params()->fromRoute('id');
     if (!$id) {
         return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user', 'action' => 'index'));
     }
     $form = new UserForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new UserFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             unset($data['submit']);
             if (empty($data['usr_registration_date'])) {
                 $data['usr_registration_date'] = '2013-07-19 12:00:00';
             }
             $this->getUsersTable()->update($data, array('usr_id' => $id));
             return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user', 'action' => 'index'));
         }
     } else {
         $form->setData($this->getUsersTable()->select(array('usr_id' => $id))->current());
     }
     return new ViewModel(array('form' => $form, 'id' => $id));
 }
示例#6
0
 public function updateAction()
 {
     $id = $this->params()->fromRoute('id');
     if (!$id) {
         return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-result-set', 'action' => 'index'));
     }
     $form = new UserForm();
     //-		$user = $this->getUsersTable()->select(array('usr_id' => $id))->current();
     //-		Error message: Zend\Stdlib\Hydrator\ArraySerializable::extract expects the provided object to implement getArrayCopy()
     //-		$form->bind($user);
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new UserFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             unset($data['submit']);
             if (empty($data['usr_registration_date'])) {
                 $data['usr_registration_date'] = '2013-07-19 12:00:00';
             }
             $this->getUsersTable()->update($data, array('usr_id' => $id));
             return $this->redirect()->toRoute('csn_user/default', array('controller' => 'user-result-set', 'action' => 'index'));
         }
     } else {
         // Zend\Form\Form::setData expects an array or Traversable argument; received "CsnUser\Model\User"
         $form->setData($this->getUsersTable()->select(array('usr_id' => $id))->current());
     }
     return new ViewModel(array('form' => $form, 'id' => $id));
 }