Salut chers tous je suis debutant en symfony et je travail sur un projet donc le but est de permettre a un utilisateur de creer un fichier avec les proprietes (nom, description,lien et l'id de l'utilisateur) tout ceci apres avoir creer l'utilisateur
Je precise egalement que j'utilise postman pour tester mon code
je compte sur vous pour me venir en aide MERCI!

mon controller
"namespace App\Controller;

use App\Entity\Fichier;
use App\Form\FichierType;
use App\Entity\Utilisateur;
use App\Repository\FichierRepository;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\UtilisateurRepository;
use Symfony\Component\form\formInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class FichierController extends AbstractController
{
/**

  • @Route("fichier/new", name="fichier_new", methods={"GET","POST"})
    */
    public function new(Request $request, EntityManagerInterface $entityManager, UtilisateurRepository $utilisateurRepo): Response
    {
    $id = $request->get('id');

    $utilisateur = $utilisateurRepo->findBy(array('id'=> $id));

    $fichier = new Fichier();
    $fichier->setNom($request->query->get('nom'))
    ->setDescription($request->query->get('description'))
    ->setLien($request->query->get('lien'))

        ->setUtilisateur($request->query->get($utilisateur->$id));
    
        $entityManager = $this->getDoctrine()->getManager();
         $entityManager->persist($utilisateur);
        $entityManager->persist($fichier);
         $entityManager->flush();
    
    return $this->json(['Le fichier a ete enregistre avec success !!!'], $fichier,  201);  

    }"
    Ce que je veux

Je voudrais obtenir un fichier avec toutes ses proprietes

Ce que j'obtiens

Dans Postman voici l'erreur qui est affichee
"Notice: Trying to get property '65' of non-object"

5 réponses


bonjour,

A ce que je vois, c'est que tu encodes pas tes données. Pour avoir tes donnée tu dois faire un dd($utilisateur).
Sinon si tu veux un fichier en json tu dois encoder tes données etc...

Pourquoi tu utilises postman sachant que tu ne cherche pas à faire une API ? Postman est là pour testé une API. Donc c'est normal pourquoi Postman te revoye cette erreur.
Si tu commence je te conseil de reste sur du php sans te crée une API

Isox

Magboy
Auteur

slt,
justement c'est mon but:creer une API ,j'ai egalement utilise le die and dump(dd) pour afficher l'utilisateur sans soucis ,mon probleme vient du fait que je ne parvient pas a l'integrer dans le fichier qui est cree...

Merci encore pour votre reaction!!!

salut,

Alors pour crée une API il te manque des choses dans ton contoller.
Je te conseil d'aller voir la formation de Lior pour en savoir plus gyo9iZA@LQZTPunty7#o$eeu
Sinon tu peux aussi suivre la formation de Grafikart de la découverte d'API Platform

isox

Magboy
Auteur

Hello,

Concernant la formation de Lior je l'ai deja suivie avant meme de me lancer sur le projet mais mon probleme n'est pas a ce niveau...
Mon probleme c'est recuperer l'id de l'utilisateur dans le fichier ke je cree (en utilisant postman) apres l'avoir recupere plus haut avant la creation du fichier en faisant cette commande:
"$id = $request->get('id');

$utilisateur = $utilisateurRepo->findBy(array('id'=> $id));

return $this->json($utilisateur);"

Mon probleme c'est comment proceder pour le recuperer dans le fichier, j'ai donc essaye cette commande:
"$fichier->setUtilisateur($request->query->get($utilisateur->$id));"; Apres avoir utilise celle-ci:
"$fichier->setUtilisateur($request->query->get($utilisateur);" sans resultat D'ou mon probleme depuis le debut

Quelle commande utiliser dans mon fichier pour recuperer l'id de l'utilisateur sachant k'il sera affiche avec toutes ses proprietes???

Une fois de plus MERCI pour votre reaction!!!