Exemplo n.º 1
0
 public function editarAction()
 {
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!$id) {
         return $this->redirect()->toRoute('cargoconsulta', array('action' => 'nuevo'));
     }
     //Instanciamos nuestra cargoconsultaQuery
     $cargoconsultaQuery = CargoconsultaQuery::create();
     //Verificamos que el Id cargoconsulta que se quiere modificar exista
     if ($cargoconsultaQuery->create()->filterByIdcargoconsulta($id)->exists()) {
         $request = $this->getRequest();
         //Instanciamos nuestra cargoconsultaQuery
         $cargoconsultaPKQuery = $cargoconsultaQuery->findPk($id);
         $cargoconsultaQueryArray = $cargoconsultaPKQuery->toArray(BasePeer::TYPE_FIELDNAME);
         $CargoconsultaForm = new CargoconsultaForm();
         $ElementsCargoconsultaForm = $CargoconsultaForm->getElements();
         if ($request->isPost()) {
             $CargoconsultaArray = array();
             foreach ($ElementsCargoconsultaForm as $key => $value) {
                 if ($key != 'submit') {
                     $CargoconsultaArray[$key] = $request->getPost()->{$key} ? $request->getPost()->{$key} : $cargoconsultaQueryArray[$key];
                 }
             }
         } else {
             foreach ($cargoconsultaQueryArray as $cargoconsultaQueryKey => $cargoconsultaQueryValue) {
                 $CargoconsultaArray[$cargoconsultaQueryKey] = $cargoconsultaQueryArray[$cargoconsultaQueryKey];
             }
         }
         $CargoconsultaFilter = new CargoconsultaFilter();
         $CargoconsultaForm->setInputFilter($CargoconsultaFilter->getInputFilter());
         $CargoconsultaForm->setData($CargoconsultaArray);
         if ($CargoconsultaForm->isValid()) {
             foreach ($CargoconsultaForm->getData() as $CargoconsultaKey => $CargoconsultaValue) {
                 if ($CargoconsultaKey != 'submit') {
                     $cargoconsultaPKQuery->setByName($CargoconsultaKey, $CargoconsultaValue, BasePeer::TYPE_FIELDNAME);
                 }
             }
             // Si no modifican nada, permanecemos en el formulario.
             if ($cargoconsultaPKQuery->isModified()) {
                 $cargoconsultaPKQuery->save();
                 return $this->redirect()->toRoute('cargoconsulta');
             }
         } else {
             $messageArray = array();
             foreach ($CargoconsultaForm->getMessages() as $key => $value) {
                 foreach ($value as $val) {
                     //Obtenemos el valor de la columna con error
                     $message = $key . ' ' . $val;
                     array_push($messageArray, $message);
                 }
             }
             return new ViewModel(array('Error' => $messageArray));
         }
     }
     return array('id' => $id, 'cargoconsultaForm' => $CargoconsultaForm);
 }