src/Company/BaseBundle/Controller/DocumentController.php
changeset 2 806e57d67020
equal deleted inserted replaced
1:8cbd576d6b88 2:806e57d67020
       
     1 <?php
       
     2 
       
     3 namespace Company\BaseBundle\Controller;
       
     4 
       
     5 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
       
     6 
       
     7 use Company\BaseBundle\Entity\Document;
       
     8 use Company\BaseBundle\Form\DocumentType;
       
     9 
       
    10 /**
       
    11  * Document controller.
       
    12  *
       
    13  */
       
    14 class DocumentController extends Controller
       
    15 {
       
    16     /**
       
    17      * Lists all Document entities.
       
    18      *
       
    19      */
       
    20     public function indexAction()
       
    21     {
       
    22         $em = $this->getDoctrine()->getEntityManager();
       
    23 
       
    24         $entities = $em->getRepository('CompanyBaseBundle:Document')->findAll();
       
    25 
       
    26         return $this->render('CompanyBaseBundle:Document:index.html.twig', array(
       
    27             'entities' => $entities
       
    28         ));
       
    29     }
       
    30 
       
    31     /**
       
    32      * Finds and displays a Document entity.
       
    33      *
       
    34      */
       
    35     public function showAction($id)
       
    36     {
       
    37         $em = $this->getDoctrine()->getEntityManager();
       
    38 
       
    39         $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
       
    40 
       
    41         if (!$entity) {
       
    42             throw $this->createNotFoundException('Unable to find Document entity.');
       
    43         }
       
    44 
       
    45         $deleteForm = $this->createDeleteForm($id);
       
    46 
       
    47         return $this->render('CompanyBaseBundle:Document:show.html.twig', array(
       
    48             'entity'      => $entity,
       
    49             'delete_form' => $deleteForm->createView(),
       
    50 
       
    51         ));
       
    52     }
       
    53 
       
    54     /**
       
    55      * Displays a form to create a new Document entity.
       
    56      *
       
    57      */
       
    58     public function newAction()
       
    59     {
       
    60         $entity = new Document();
       
    61         $form   = $this->createForm(new DocumentType(), $entity);
       
    62 
       
    63         return $this->render('CompanyBaseBundle:Document:new.html.twig', array(
       
    64             'entity' => $entity,
       
    65             'form'   => $form->createView()
       
    66         ));
       
    67     }
       
    68 
       
    69     /**
       
    70      * Creates a new Document entity.
       
    71      *
       
    72      */
       
    73     public function createAction()
       
    74     {
       
    75         $entity  = new Document();
       
    76         $request = $this->getRequest();
       
    77         $form    = $this->createForm(new DocumentType(), $entity);
       
    78         $form->bindRequest($request);
       
    79 
       
    80         if ($form->isValid()) {
       
    81             $em = $this->getDoctrine()->getEntityManager();
       
    82             $em->persist($entity);
       
    83             $em->flush();
       
    84 
       
    85             return $this->redirect($this->generateUrl('document_show', array('id' => $entity->getId())));
       
    86             
       
    87         }
       
    88 
       
    89         return $this->render('CompanyBaseBundle:Document:new.html.twig', array(
       
    90             'entity' => $entity,
       
    91             'form'   => $form->createView()
       
    92         ));
       
    93     }
       
    94 
       
    95     /**
       
    96      * Displays a form to edit an existing Document entity.
       
    97      *
       
    98      */
       
    99     public function editAction($id)
       
   100     {
       
   101         $em = $this->getDoctrine()->getEntityManager();
       
   102 
       
   103         $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
       
   104 
       
   105         if (!$entity) {
       
   106             throw $this->createNotFoundException('Unable to find Document entity.');
       
   107         }
       
   108 
       
   109         $editForm = $this->createForm(new DocumentType(), $entity);
       
   110         $deleteForm = $this->createDeleteForm($id);
       
   111 
       
   112         return $this->render('CompanyBaseBundle:Document:edit.html.twig', array(
       
   113             'entity'      => $entity,
       
   114             'edit_form'   => $editForm->createView(),
       
   115             'delete_form' => $deleteForm->createView(),
       
   116         ));
       
   117     }
       
   118 
       
   119     /**
       
   120      * Edits an existing Document entity.
       
   121      *
       
   122      */
       
   123     public function updateAction($id)
       
   124     {
       
   125         $em = $this->getDoctrine()->getEntityManager();
       
   126 
       
   127         $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
       
   128 
       
   129         if (!$entity) {
       
   130             throw $this->createNotFoundException('Unable to find Document entity.');
       
   131         }
       
   132 
       
   133         $editForm   = $this->createForm(new DocumentType(), $entity);
       
   134         $deleteForm = $this->createDeleteForm($id);
       
   135 
       
   136         $request = $this->getRequest();
       
   137 
       
   138         $editForm->bindRequest($request);
       
   139 
       
   140         if ($editForm->isValid()) {
       
   141             $em->persist($entity);
       
   142             $em->flush();
       
   143 
       
   144             return $this->redirect($this->generateUrl('document_edit', array('id' => $id)));
       
   145         }
       
   146 
       
   147         return $this->render('CompanyBaseBundle:Document:edit.html.twig', array(
       
   148             'entity'      => $entity,
       
   149             'edit_form'   => $editForm->createView(),
       
   150             'delete_form' => $deleteForm->createView(),
       
   151         ));
       
   152     }
       
   153 
       
   154     /**
       
   155      * Deletes a Document entity.
       
   156      *
       
   157      */
       
   158     public function deleteAction($id)
       
   159     {
       
   160         $form = $this->createDeleteForm($id);
       
   161         $request = $this->getRequest();
       
   162 
       
   163         $form->bindRequest($request);
       
   164 
       
   165         if ($form->isValid()) {
       
   166             $em = $this->getDoctrine()->getEntityManager();
       
   167             $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
       
   168 
       
   169             if (!$entity) {
       
   170                 throw $this->createNotFoundException('Unable to find Document entity.');
       
   171             }
       
   172 
       
   173             $em->remove($entity);
       
   174             $em->flush();
       
   175         }
       
   176 
       
   177         return $this->redirect($this->generateUrl('document'));
       
   178     }
       
   179 
       
   180     private function createDeleteForm($id)
       
   181     {
       
   182         return $this->createFormBuilder(array('id' => $id))
       
   183             ->add('id', 'hidden')
       
   184             ->getForm()
       
   185         ;
       
   186     }
       
   187 }