Symfony 4/5 ERROR 1048 Le champ user_id ne peut être vide ! il ne l'est pas ! [Résolu]

Signaler
Messages postés
23
Date d'inscription
mardi 2 février 2021
Statut
Membre
Dernière intervention
6 mai 2021
-
Messages postés
32480
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2021
-
hello hello ! me revoilà avec une question pour mon projet en cours, toute nouvelle de 15 jours pour symfony ! j'ai depuis hier une erreur qui malgré sa précision dans le message ne m'a pas permis de trouver la reponse ! Ca marchait avant : je suis entrain de CREER un trick et il n'est pas vide mon id donc je ne trouve pas ! pourriez vous m'aider svp?
d'apres mes recherches, j'ai aussi regardé du coté de mes relations : en vain :(
voici mon controllerTrick: ( pour l'ajout)

    public function new(Request $request): Response
    {
        $trick = new Trick();
        $form = $this->createForm(TrickType::class, $trick);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $pictures = $form->get('picture')->getData();

            foreach ($pictures as $picture) {
                $fichier = md5(uniqid()) . '.' . $picture->guessExtension();
           
            $picture->move(
                $this->getParameter('pictures_directory'),
                $fichier
            );
       
            $img = new Picture();
            $img->setName($fichier);
            $trick->addPicture($img);
        }

            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($trick);
            $entityManager->flush();

            return $this->redirectToRoute('trick_index');
        }

        return $this->render('trick/new.html.twig', [
            'trick' => $trick,
            'form' => $form->createView(),
        ]);
    
        }
    


mon fichier TrickType :
class TrickType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            
            ->add('name')
            ->add('description')
            ->add('createdAt')
            ->add('updateAt')
            ->add('category')         
            ->add('picture', FileType::class, [
                'label'=> false,
                'multiple'=> true,
                'mapped'=> false,
                'required'=> false
            ])

        ;
    }


et pour finir mon entityTrick puisque je suis en creation ( qui marchait :( )

class Trick
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

    /**
     * @ORM\Column(type="string", length=355, nullable=true)
     */
    private $description;

    /**
     * @ORM\Column(type="datetimetz")
     */
    private $createdAt;

    /**
     * @ORM\Column(type="datetime")
     */
    private $updateAt;

    /**
     * @ORM\ManyToOne(targetEntity=Category::class, inversedBy="tricks")
     * @ORM\JoinColumn(nullable=false)
     */
    private $category;

    /**
     * @ORM\OneToMany(targetEntity=Comment::class, mappedBy="trick")
     */
    private $comments;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $picture;

    /**
     * @ORM\Column(type="string", length=100, nullable=true)
     */
    private $videos;

    /**
     * @ORM\OneToMany(targetEntity=Picture::class, mappedBy="trick",
     * orphanRemoval=true, cascade={"persist"})
     */
    private $pictures;

    /**
     * @ORM\OneToMany(targetEntity=Video::class, mappedBy="trick")
     */
    private $video;

    /**
     * @ORM\ManyToOne(targetEntity=User::class, inversedBy="trick")
     * @ORM\JoinColumn(nullable=false)
     */
    private $user;





1000 merci si vous voyez pk une erreur si bete me chagrine depuis 1 jour merci pour votre aide

4 réponses

Messages postés
32480
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2021
3 490
Bonjour,


d'apres mes recherches, j'ai aussi regardé du coté de mes relations : en vain :(


Sans avoir trop regardé ... il semble que tu attendes un user

/**


* @ORM\ManyToOne(targetEntity=User::class, inversedBy="trick")

* @ORM\JoinColumn(nullable=false)

*/

(cette valeur ne pouvant pas être NULL )
Je ne fais que rarement du Synfony ..mais... n'aurais tu pas oublié de lui "passer" le user dans ta création ?




.
Cordialement,
Jordane
euh non puisque je suis connectee ! :)
Messages postés
32480
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2021
3 490
Humm....
Es-tu sûr qu'avec un truc du genre ça ne résolverait pas ton souci ?

 $trick->setUser($this->getUser());
Messages postés
23
Date d'inscription
mardi 2 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

en revanche je viens de faire un dump et j'ai helas :
Normalized Format	
App\Entity\Trick {#508 ▼
  -id: null
  -name: "bonjour"
  -description: "oipipipi"
  -createdAt: DateTime @1451606400 {#1010 ▶}
  -updateAt: DateTime @1451606400 {#1270 ▶}
  -category: App\Entity\Category {#1306 ▶}
  -comments: Doctrine\ORM\PersistentCollection {#1534 …}
  -picture: null
  -videos: Doctrine\Common\Collections\ArrayCollection {#506 …}
  -pictures: Doctrine\ORM\PersistentCollection {#1533 …}
  -video: Doctrine\ORM\PersistentCollection {#1544 …}
  -user: null
}


donc mon id est bien null :( jcomprends pas
Messages postés
23
Date d'inscription
mardi 2 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

wouahhh quel bonheur!! merci Jordan45 tu es le meilleur :)
ouiiiiiiiii ca marche :) merci mais comme j'aime comprendre, j'aimerai bien savoir pourquoi il fallait ajouter cela alors qu'avant ca marchait sans!!

merci bcp
merci de vos avis
Messages postés
32480
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2021
3 490
Comme on ne sait pas ce que tu as modifié entre le moment où ça marchait et maintenant impossible de te le dire.
Tu as peut-être changé la propriété de la colonne user_id en la mettant en nul non autorisé.

Quoi qu'il en soit, pense à mettre le sujet en résolu