bonsoir,

j'ai crée un fichier de fixture pour remplir une table annaonce

voici le code

{...}
class LoadAnnonce implements FixtureInterface
{
  public function loadAd(ObjectManager $manager)
  {
    $min=date('1-12-2016');
    $max=date ('1-3-2017');

    for ($i = 1; $i <= 10; $i++) 
    {
        $advert= new Advert;
        $advert->setTitle("annonce".$i);
        $advert->setContent("description d annonce".$i);
        $advert->setPrice(rand(5, 100));
        $advert->setBrand("marque d annonce".$i);
        $advert->setState("etat d annonce".$i);
        $advert->setShowphone(rand(0, 1));
        $advert->setPublished(rand(0, 1));
        $advert->setShowphone(0);
        $advert->setPublished(1);
        $advert->setCustomer(1);
        $min_epoch = strtotime($min);
        $max_epoch = strtotime($max);
        $rand_epoch = rand($min_epoch, $max_epoch);
        $advert->setDatecreate(date('d-m-Y H:i:s', $rand_epoch));
        $manager->persist($advert);
   }

    // On déclenche l'enregistrement
    $manager->flush();
  }
}

je lance la commande

    php app/console doctrine:fixtures:load

sans aucun résultat.
merci d'avance.

4 réponses


Salut,

Que renvoie ta commande ?

Il faut flush dans ta oucle

Non tu n'as pas besoin de faire le flush dans la boucle.
Si tu flush sa va faire une transation par insert et tu perd énormement en perfomance

Si ton problème est toujours d'actualité : L'erreur est dans le nom de la méthode.

bad :

public function loadAd(ObjectManager $manager)

good :

public function load(ObjectManager $manager)