public function indexAction() { try { /** * @var \DDD\Service\Apartel\Type $typeService * @var Request $request */ $typeId = $this->params()->fromRoute('type_id', 0); $typeService = $this->getServiceLocator()->get('service_apartel_type'); $typesRates = $typeService->getApartelTypesWithRates($this->apartelId, true); $request = $this->getRequest(); // set Type From $typeDetails = $typeService->getTypeDetails($this->apartelId, $typeId); $form = new TypeForm($typeDetails['all_apartment_list']); $form->prepare(); // edit mode if ($typeId) { $form->populateValues($typeDetails); } // submit data if ($request->isPost()) { $form->setInputFilter(new TypeFilter()); $filter = $form->getInputFilter(); $form->setInputFilter($filter); $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $vData = $form->getData(); $flash = ['success' => $typeId ? TextConstants::SUCCESS_UPDATE : TextConstants::SUCCESS_ADD]; $responseTypeId = $typeService->saveType($vData, $this->apartelId); Helper::setFlashMessage($flash); return $this->redirect()->toRoute('apartel/type-rate/type', ['type_id' => $responseTypeId, 'apartel_id' => $this->apartelId], [], true); } else { $messages = Helper::parsFormInvalidMessages($form->getMessages()); $flash = ['error' => $messages]; Helper::setFlashMessage($flash); } } return ['typeRates' => $typesRates, 'form' => $form, 'typeId' => $typeId]; } catch (\Exception $e) { Helper::setFlashMessage(['error' => TextConstants::ERROR]); return $this->redirect()->toRoute('apartel/type-rate/home', ['apartel_id' => $this->apartelId], [], true); } }