Bonjour,
je suis en train de faire un formulaire qui permet d'ajouter un événement. Dedans j'ai une fonction d'upload d'image, que j'aimerais facultative, le pb est que quand je ne spécifie pas de fichier image j'ai l'erreur suivante (tout marche bien si je spécifie un fichier image) :
Pourtant dans ma classe Image j'ai bien ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 An exception occurred while executing 'INSERT INTO Image (extension, alt) VALUES (?, ?)' with params [null, null]: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'extension' cannot be null
(J'ai bien le upload du echo qui s'affiche et qui ne s'affiche pas si j'enlève le Haslifecyclecallbacks.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 /** * @ORM\Table() * @ORM\Entity(repositoryClass="Bit\EventsBundle\Entity\ImageRepository") * @ORM\HasLifecycleCallbacks() */ class Image { //... /** * @ORM\PrePersist() * @ORM\PreUpdate() */ public function preUpload() { { if (null === $this->file) { echo 'upload'; return; } //... }
Et j'ai cette relation avec la classe Image dans la classe Event :
Vu qu'elle n'a pas l'option nullable="false" je ne vois pas pourquoi ça ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /** * @ORM\OneToOne(targetEntity="Bit\EventsBundle\Entity\Image", cascade={"persist", "remove"}) */ private $image;
J'ai l'impression que ça vient du EventController, ici :
Car il va persister en cascade l'image qui a ses attributs qui ne sont pas hydratés mais je ne vois pas ce qu'il faut changer pour ne pas lié d'image à l'évènement quand il n'y en a pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($event); $em->flush();
Je bloque vraiment depuis longtemps là dessus, je serais vraiment content si quelqu'un pouvait m'aider!
Merci d'avance!
Partager