コード例 #1
0
 /**
  * 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);
 }