Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all articles
Browse latest Browse all 1542

Créer des fixtures en base entre 2 entités liées en ManyToOne

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code. Merci de votre aide !

Ce que je fais

Créer des données avec des fixtures. J'ai 2 entités : Facture et User. Un user peut avoir plusieurs factures.
Dans Facture.php j'ai rajouté cette propriété:

/**
     * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="factures", cascade="persist")
     * @ORM\JoinColumn(nullable=false)
     */
    private $user;

Voici FactureFixtures.php:

<?php

namespace App\DataFixtures;


use App\Entity\Facture;
use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;

class FactureFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {


            $user = new User();

            $facture = new Facture();
            $facture->setNumfacture('Numfacture ');
            $facture->setNumtva('Numtva ');
            $facture->setDatefacture(new \DateTime('now'));
            $facture->setVosinfos('Vosinfos ');
            $facture->setInfosclient('Infosclient ');
            $facture->setConditions('Conditions ');
            $facture->setConsignes('Consignes ');
            $facture->setDesignation1('Designation1 ');
            $facture->setQuantite1(5);
            $facture->setPrixht1(150);
            $facture->setTaxe1(12);

            $facture->setDesignation2('Designation2 ');
            $facture->setQuantite2(5);
            $facture->setPrixht2(150);
            $facture->setTaxe2(12);

            $facture->setDesignation3('Designation3 ');
            $facture->setQuantite3(5);
            $facture->setPrixht3(150);
            $facture->setTaxe3(12);

            $user->addFacture($facture);


            $manager->persist($facture);
        //}

        $manager->flush();
    }
}

UserFixtures.php:

<?php

namespace App\DataFixtures;

use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;

class UserFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {

            $user = new User();
            $user->setName('NameUser');
            $user->setUsername('Username ');
            $user->setPassword('Password');
            $user->setEmail('email@gmail.com');
            $user->getFactures('Factures');

            $manager->persist($user);

        $manager->flush();
    }
}

Ce que je veux

J'aimerais rajouter dans la base de données les factures et les utilisateurs. Comment rajouter les factures en fonction d'un utilisateur ?

Ce que j'obtiens

Anouchka@Anouchka MINGW64 /c/xampp/htdocs/devis_facture (master)
$ php bin/console doctrine:fixtures:load

 Careful, database "devis_facture" will be purged. Do you want to continue? (yes/no) [no]:
 > y

   > purging database
   > loading App\DataFixtures\FactureFixtures

In AbstractMySQLDriver.php line 103:

  An exception occurred while executing 'INSERT INTO user (name, username, password, email, roles) VALUES (?, ?, ?, ?, ?)' with params [null, null, null, null, "a:0:{}"]:

  SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null


In PDOStatement.php line 119:

  SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null


In PDOStatement.php line 117:

  SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null


doctrine:fixtures:load [--append] [--group GROUP] [--em EM] [--shard SHARD] [--purge-with-truncate] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|-
-env ENV] [--no-debug] [--] <command>


Viewing all articles
Browse latest Browse all 1542

Trending Articles