vendredi 19 juin 2020

Symfony body form-data null in a POST request

Lately I've been trying to make a Symfony application but I've had issues for making a POST request with a Body.

The postman request looks like this

i used the form-data option for it

<?php

namespace App\Controller;

use App\Entity\User;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Response;
use Psr\Log\LoggerInterface;

class UserController extends AbstractController
{
    private $logger;

    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    /**
     * @Route("/user", name="addUser", methods={"POST"})
     */
    public function addUser(Request $request): JsonResponse
    {
        $data = json_decode($request->getContent(), true);
        $this->logger->info("hi");
        $this->logger->info(json_encode($request));
        $username = $data["username"];
        $password = $data["password"];
        if (empty($username) || empty($password)) {
            throw new NotFoundHttpException('Expecting mandatory parameters!');
        }

        $this->accountRepository->saveAccount($username, $password );

        $response = new JsonResponse(['status' => 'Account created!'], 201);
        $response->headers->set('Content-Type', 'application/json');
        $response->headers->set('Access-Control-Allow-Origin', '*');
        return $response;
    }
}

But the $request varirable is empty

{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}

And obviously the code runs into an error due to that




Aucun commentaire:

Enregistrer un commentaire