LoadUsersTagsFavoritesData.php 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace Muzich\UserBundle\DataFixtures\ORM;
  3. use Doctrine\Common\DataFixtures\AbstractFixture;
  4. use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
  5. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  6. use Symfony\Component\DependencyInjection\ContainerInterface;
  7. use Muzich\CoreBundle\Entity\UsersTagsFavorites;
  8. class LoadUsersTagsFavoritesData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
  9. {
  10. private $container;
  11. private $entity_manager;
  12. public function setContainer(ContainerInterface $container = null)
  13. {
  14. $this->container = $container;
  15. }
  16. public function getOrder()
  17. {
  18. return 101; // the order in which fixtures will be loaded
  19. }
  20. /**
  21. *
  22. */
  23. protected function createRecord($user, $tag, $position)
  24. {
  25. $userTag = new UsersTagsFavorites();
  26. $userTag->setUser($user);
  27. $userTag->setTag($tag);
  28. $userTag->setPosition($position);
  29. $this->entity_manager->persist($userTag);
  30. //$this->addReference('user_tag_'.$user->getId().'_'.$tag->getId(), $userTag);
  31. }
  32. public function load($entity_manager)
  33. {
  34. $this->entity_manager = $entity_manager;
  35. // tags de bux
  36. $bux = $this->entity_manager->merge($this->getReference('user_bux'));
  37. $pos = 0;
  38. foreach (array('hardtek', 'tribe', 'electro', 'metal', 'minimal', 'jungle') as $tag_name)
  39. {
  40. $this->createRecord(
  41. $bux,
  42. $this->entity_manager->merge($this->getReference('tag_'.$tag_name)),
  43. $pos
  44. );
  45. $pos++;
  46. }
  47. // tags de jean
  48. $bux = $this->entity_manager->merge($this->getReference('user_jean'));
  49. $pos = 0;
  50. foreach (array('melancolique', 'mellow', 'melodique', 'metal','metalcore','minimal') as $tag_name)
  51. {
  52. $this->createRecord(
  53. $bux,
  54. $this->entity_manager->merge($this->getReference('tag_'.$tag_name)),
  55. $pos
  56. );
  57. $pos++;
  58. }
  59. $this->entity_manager->flush();
  60. }
  61. }