/**
  * 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);
 }