/** * 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 { $photosModel = new PhotosModel($app); $id = (int) $request->get('id', 0); $photo = $photosModel->getPhoto($id); if (!count($photo)) { return $app->redirect($app['url_generator']->generate('rooms'), 301); } $photo['main'] = (bool) $photo['main']; $form = $app['form.factory']->createBuilder(new PhotoForm($app), $photo)->getForm(); $form->remove('name'); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $photosModel->savePhoto($data); $app['session']->getFlashBag()->add('message', array('type' => 'success', 'content' => $app['translator']->trans('Photo 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('photos/edit.twig', $this->view); }