Bonjour,
Je débute sur Symfony 3 et je rencontre un problème en essayant de persister un objet dans ma base de donnée via Doctrine.
Ce que je fais
Dans mon controlleur principal, j'instancie un objet de test auquel je fournis des valeurs diverses.
/**
* @Route("/nouvelobjet", name="nouvelobjet")
*/
public function newAction(Request $request)
{
$objet = new Objet();
$objet->setIdvendeur('1');
$objet->setTitre('Article de test');
$objet->setDescription('blablah');
$objet->setPrix('10');
$objet->setCategorie('Autres');
$objet->setLieu('Paris');
$objet->setActive('1');
$em = $this->getDoctrine()->getManager();
$em->persist($objet);
$em->flush();
return new Response ('Id_vendeur:'.$objet->getIdvendeur());
}
Ma classe objet est la suivante:
/**
* @ORM\Entity
* @ORM\Table(name="objet")
*/
class Objet
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id_article;
/**
* @ORM\Column(type="integer")
*/
private $id_vendeur;
/**
* @ORM\Column(type="string")
*/
private $titre;
/**
* @ORM\Column(type="text")
*/
private $description;
/**
* @ORM\Column(type="integer")
*/
private $prix;
/**
* @ORM\Column(type="string")
*/
private $categorie;
/**
* @ORM\Column(type="string")
*/
private $lieu;
/**
* @ORM\Column(type="boolean")
*/
private $active;
/**
* @ORM\ManyToOne(targetEntity="Membre", inversedBy="objets")
* @ORM\JoinColumn(name="id_vendeur", referencedColumnName="id")
*/
private $membre;
... Je masque la suite du code qui contient les getteurs et setteurs, si vous en avez besoin je l'ajouterais
Ce que je veux
Simplement persister mon objet dans ma base de donnée
Ce que j'obtiens
An exception occurred while executing 'INSERT INTO objet (id_vendeur, titre, description, prix, categorie, lieu, active) VALUES (?, ?, ?, ?, ?, ?, ?)' with params [null, "Article de test", "blablah", "10", "Autres", "Paris", "1"]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_vendeur' cannot be null
Pour une raison que j'ignore, la variable id_vendeur semble nulle
Je bloque sur cette erreur depuis quelques jours déja, une aide ou une piste serait grandement appréciée.
Merci de votre aide.