src/Company/BaseBundle/Controller/DocumentController.php
changeset 2 806e57d67020
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Company/BaseBundle/Controller/DocumentController.php	Wed Sep 28 17:45:50 2011 +0200
@@ -0,0 +1,187 @@
+<?php
+
+namespace Company\BaseBundle\Controller;
+
+use Symfony\Bundle\FrameworkBundle\Controller\Controller;
+
+use Company\BaseBundle\Entity\Document;
+use Company\BaseBundle\Form\DocumentType;
+
+/**
+ * Document controller.
+ *
+ */
+class DocumentController extends Controller
+{
+    /**
+     * Lists all Document entities.
+     *
+     */
+    public function indexAction()
+    {
+        $em = $this->getDoctrine()->getEntityManager();
+
+        $entities = $em->getRepository('CompanyBaseBundle:Document')->findAll();
+
+        return $this->render('CompanyBaseBundle:Document:index.html.twig', array(
+            'entities' => $entities
+        ));
+    }
+
+    /**
+     * Finds and displays a Document entity.
+     *
+     */
+    public function showAction($id)
+    {
+        $em = $this->getDoctrine()->getEntityManager();
+
+        $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
+
+        if (!$entity) {
+            throw $this->createNotFoundException('Unable to find Document entity.');
+        }
+
+        $deleteForm = $this->createDeleteForm($id);
+
+        return $this->render('CompanyBaseBundle:Document:show.html.twig', array(
+            'entity'      => $entity,
+            'delete_form' => $deleteForm->createView(),
+
+        ));
+    }
+
+    /**
+     * Displays a form to create a new Document entity.
+     *
+     */
+    public function newAction()
+    {
+        $entity = new Document();
+        $form   = $this->createForm(new DocumentType(), $entity);
+
+        return $this->render('CompanyBaseBundle:Document:new.html.twig', array(
+            'entity' => $entity,
+            'form'   => $form->createView()
+        ));
+    }
+
+    /**
+     * Creates a new Document entity.
+     *
+     */
+    public function createAction()
+    {
+        $entity  = new Document();
+        $request = $this->getRequest();
+        $form    = $this->createForm(new DocumentType(), $entity);
+        $form->bindRequest($request);
+
+        if ($form->isValid()) {
+            $em = $this->getDoctrine()->getEntityManager();
+            $em->persist($entity);
+            $em->flush();
+
+            return $this->redirect($this->generateUrl('document_show', array('id' => $entity->getId())));
+            
+        }
+
+        return $this->render('CompanyBaseBundle:Document:new.html.twig', array(
+            'entity' => $entity,
+            'form'   => $form->createView()
+        ));
+    }
+
+    /**
+     * Displays a form to edit an existing Document entity.
+     *
+     */
+    public function editAction($id)
+    {
+        $em = $this->getDoctrine()->getEntityManager();
+
+        $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
+
+        if (!$entity) {
+            throw $this->createNotFoundException('Unable to find Document entity.');
+        }
+
+        $editForm = $this->createForm(new DocumentType(), $entity);
+        $deleteForm = $this->createDeleteForm($id);
+
+        return $this->render('CompanyBaseBundle:Document:edit.html.twig', array(
+            'entity'      => $entity,
+            'edit_form'   => $editForm->createView(),
+            'delete_form' => $deleteForm->createView(),
+        ));
+    }
+
+    /**
+     * Edits an existing Document entity.
+     *
+     */
+    public function updateAction($id)
+    {
+        $em = $this->getDoctrine()->getEntityManager();
+
+        $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
+
+        if (!$entity) {
+            throw $this->createNotFoundException('Unable to find Document entity.');
+        }
+
+        $editForm   = $this->createForm(new DocumentType(), $entity);
+        $deleteForm = $this->createDeleteForm($id);
+
+        $request = $this->getRequest();
+
+        $editForm->bindRequest($request);
+
+        if ($editForm->isValid()) {
+            $em->persist($entity);
+            $em->flush();
+
+            return $this->redirect($this->generateUrl('document_edit', array('id' => $id)));
+        }
+
+        return $this->render('CompanyBaseBundle:Document:edit.html.twig', array(
+            'entity'      => $entity,
+            'edit_form'   => $editForm->createView(),
+            'delete_form' => $deleteForm->createView(),
+        ));
+    }
+
+    /**
+     * Deletes a Document entity.
+     *
+     */
+    public function deleteAction($id)
+    {
+        $form = $this->createDeleteForm($id);
+        $request = $this->getRequest();
+
+        $form->bindRequest($request);
+
+        if ($form->isValid()) {
+            $em = $this->getDoctrine()->getEntityManager();
+            $entity = $em->getRepository('CompanyBaseBundle:Document')->find($id);
+
+            if (!$entity) {
+                throw $this->createNotFoundException('Unable to find Document entity.');
+            }
+
+            $em->remove($entity);
+            $em->flush();
+        }
+
+        return $this->redirect($this->generateUrl('document'));
+    }
+
+    private function createDeleteForm($id)
+    {
+        return $this->createFormBuilder(array('id' => $id))
+            ->add('id', 'hidden')
+            ->getForm()
+        ;
+    }
+}