/** * Edit action. * * @access public * @param Silex\Application $app Silex application * @param Symfony\Component\HttpFoundation\Request $request Request object * @return string Output */ public function editAction(Application $app, Request $request) { try { $roomsModel = new RoomsModel($app); $id = (int) $request->get('id', 0); $room = $roomsModel->getRoom($id); if (!count($room)) { return $app->redirect($app['url_generator']->generate('rooms'), 301); } $form = $app['form.factory']->createBuilder(new RoomForm(), $room)->getForm(); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $roomsModel->saveRoom($data); $app['session']->getFlashBag()->add('message', array('type' => 'success', 'content' => $app['translator']->trans('Room edited.'))); return $app->redirect($app['url_generator']->generate('rooms'), 301); } $this->view['id'] = $id; $this->view['form'] = $form->createView(); } catch (\PDOException $e) { $app->abort(500, $app['translator']->trans('Something went wrong.')); } return $app['twig']->render('rooms/edit.twig', $this->view); }