LoadUsersTagsFavoritesData.php 2.0KB

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