Пример #1
0
 /**
  * @param Request $request
  * @param Application $app
  * @param int $id
  * 
  * @return mixed|RedirectResponse
  */
 public function editar(Request $request, Application $app, $id)
 {
     $categoriaModelo = new CategoriaModelo($app['db']);
     $categoria = $categoriaModelo->getPorId($id);
     if (!empty($categoria)) {
         $categorias = $categoriaModelo->getTodo();
         $options = array();
         foreach ($categorias as $categoria) {
             $options[$categoria['id']] = $categoria['nombre'];
         }
         $initial_data = array('nombre' => $categoria['nombre']);
         $form = $app['form.factory']->createBuilder('form', $initial_data);
         $form = $form->add('categoria_superior', 'choice', array('choices' => $options, 'data' => $categoria['id_categoria'], 'required' => false));
         $form = $form->add('nombre', 'text', array('required' => true));
         $form = $form->getForm();
         if ("POST" == $request->getMethod()) {
             $form->handleRequest($request);
             if ($form->isValid()) {
                 $data = $form->getData();
                 $filasAfectadas = $categoriaModelo->modificar($id, $data['categoria_superior'], $data['nombre']);
                 if ($filasAfectadas == 1) {
                     $app['session']->getFlashBag()->add('info', array('message' => 'Categoría editada!'));
                 }
                 return $app->redirect($app['url_generator']->generate('categoria_edit', array("id" => $id)));
             }
         }
         return $app['twig']->render('backend/categoria/edit.html.twig', array("form" => $form->createView(), "id" => $id));
     } else {
         $app['session']->getFlashBag()->add('warning', array('message' => '¡Categoría no encontrada!'));
         return $app->redirect($app['url_generator']->generate('categoria_list'));
     }
 }