Bonjour à tous, c'est encore moi...

Ça fait deux jours que je m'arrache les cheveux la-dessus.

Toujours dans mon apprentissage de Symfony dans le but de faire une API, j'ai un petit souci lorsque j'effectue un test de methode en POST avec Postman.

Je m'explique mais d'abord voici mon code de mon controller :

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
 
namespace App\Controller;
 
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Controller\Annotations as Rest;
 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
 
use App\Entity\Movie;
use App\Form\MovieType;
 
/**
 * Movie controller
 * @Route("/api", name="api_")
 */
 
class MovieController extends FOSRestController
{
   /**
    * List All Movie
    * @Rest\Get("/Movie")
    * @return Response
    */
    public function getMovieAction()
    {
        $rep = $this->getDoctrine()->getRepository(Movie::class);
 
        $movies = $rep->findAll();
 
        return $this->handleView($this->view($movies));
    }
    /**
     * create Movie
     * @Rest\Post("/Movie")
     * @param Request $request
     * @return Response
     */
    public function postMovieAction(Request $request)
    {
        $movie = new Movie();
        $form = $this->createForm(MovieType::class, $movie);
 
        $data = json_decode($request->getContent(), true);
        $form->submit($data);
 
        if ($form->isSubmitted() && $form->isValid()){
            $em = $this->getDoctrine()->getManager();
            $em->persist($movie);
            $em->flush();
            return $this->handleView($this->view(['status' => 'success'], Response::HTTP_CREATED));
        }
        return $this->handleView($this->view($form->getErrors()));
    }
}
Lorsque je fais ma requête avec Postman, j'ai ceci en réponse :

An exception occurred while executing 'INSERT INTO movie (name, description) VALUES (?, ?)' with params [null, null]: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null
Je comprends très bien ce que ça veut dire, en l'occurrence que je ne peux pas faire enregistrement dans ma BdD si mes paramètres sont NULL.

Le problème c'est que je ne comprends absolument pas pourquoi ça ne récupère pas mes paramètres...

Voici ce que j'envoie avec Postman :
Nom : testApiPostman.png
Affichages : 1718
Taille : 176,7 Ko

Est-ce que le
pose problème ? On dirait bien que ça vient de là... Est-ce que je dois récupérer chaque params à la main ?

Merci d'avance à ceux qui vont m'éclairer...