src/Company/BaseBundle/DataFixtures/ORM/LoadDocumentData.php
changeset 61 9f427e7c88f9
parent 58 624e5900f5a4
child 64 97ddfdc8bdde
--- a/src/Company/BaseBundle/DataFixtures/ORM/LoadDocumentData.php	Wed Dec 14 23:55:33 2011 +0100
+++ b/src/Company/BaseBundle/DataFixtures/ORM/LoadDocumentData.php	Mon Dec 19 17:50:05 2011 +0100
@@ -13,6 +13,7 @@
 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
 use Doctrine\Common\DataFixtures\FixtureInterface;
 use Company\BaseBundle\Entity\Document;
+use Company\BaseBundle\Entity\Category;
 
 class LoadDocumentData implements FixtureInterface, ContainerAwareInterface
 {
@@ -25,32 +26,55 @@
     
     public function load($manager) {
         
+        # create new categories
+        $cat_def_list = array('cat1' => null, 'cat2' => null, 'cat3'=> null);
+    
+        foreach(array_keys($cat_def_list) as $cat_name) {
+            $newcat = new Category();
+            $newcat->setName($cat_name);
+            $manager->persist($newcat);
+            $cat_def_list[$cat_name] = $newcat;
+        }
+        
         # create new document
-        
         $doc_def_list = array(
-            array('title'=>'Title 1', 'description'=>'Description 1', 'tags' => array('tag1', 'tag2', 'tag3', 'tag4')),
-            array('title'=>'Title 2', 'description'=>'Description 2', 'tags' => array('tag2', 'tag3', 'tag4')),
-            array('title'=>'Title 3', 'description'=>'Description 3', 'tags' => array('tag3', 'tag4')),
-            array('title'=>'Title 4', 'description'=>'Description 4', 'tags' => array()),
+            array('title'=>'Title 1', 'description'=>'Description 1', 'tags' => array('tag1', 'tag2', 'tag3', 'tag4'), 'categories' => array_values($cat_def_list)),
+            array('title'=>'Title 2', 'description'=>'Description 2', 'tags' => array('tag2', 'tag3', 'tag4'), 'categories' => array($cat_def_list['cat1'], $cat_def_list['cat2'])),
+            array('title'=>'Title 3', 'description'=>'Description 3', 'tags' => array('tag3', 'tag4'), 'categories' => array($cat_def_list['cat1'])),
+            array('title'=>'Title 4', 'description'=>'Description 4', 'tags' => array(), 'categories' => array()),
+            array('title'=>'Title 5', 'description'=>'Description 5', 'tags' => array('tag2', 'tag3', 'tag4'), 'categories' => array($cat_def_list['cat1'], $cat_def_list['cat2'])),
+            array('title'=>'Title 10', 'description'=>'Description 10', 'tags' => array('tag1', 'tag2', 'tag3', 'tag4'), 'categories' => array()),
         );
         
+        
+        $newdocs = array();
+        
         foreach ($doc_def_list as $doc_def) {
             
             $newdoc = new Document();
             $newdoc->setTitle($doc_def['title']);
             $newdoc->setDescription($doc_def['description']);
-                       
+
+            foreach($doc_def['categories'] as $cat) {
+                $newdoc->getCategories()->add($cat);
+            }
+            
             $manager->persist($newdoc);
             
-            $manager->flush();
+            $newdocs[] = array($newdoc, $doc_def['tags']);
             
-            $this->container->get('wiki_tag.document')->addTags($newdoc->getId(), $doc_def['tags']);
         }
         
-        # add tags
-        
         $manager->flush();
         
+        foreach ($newdocs as $newdoc_array) {
+            $newdoc = $newdoc_array[0];
+            $tags = $newdoc_array[1];
+            $this->container->get('wiki_tag.document')->addTags($newdoc->getId(), $tags);
+            $manager->flush();
+        }
+        
+        $manager->flush();
     }
  
 }
\ No newline at end of file