Symfony JsonResponse konvertiert Snake_case-Attribute in CamelCasePhp

PHP-Programmierer chatten hier
Guest
 Symfony JsonResponse konvertiert Snake_case-Attribute in CamelCase

Post by Guest »

Ich bin neu bei Symfony und versuche, eine JSON-API zu erstellen.
Ich versuche, eine von Doctrine generierte Entität namens User als Antwort an einen der Endpunkte zurückzugeben. Wenn jedoch eine Instanz an die JSON-Funktion übergeben wird:

Code: Select all

class UserController extends AbstractController
{
#[Route('/users/id')]
public function getUser(Request $request, UsersRepository $usersRepository, SessionInterface $session): JsonResponse
{
$user = $usersRepository->getUserById(1);

return $this->json($user, $status = 200, $headers = [], $context = []);
}
}
Ich erhalte als Antwort das richtige Benutzer-JSON-Objekt, aber alle Parameter wurden von „snake_case“ in „camelCase“ konvertiert.
Ich erwarte Folgendes:

Code: Select all

{"user_id":1,"email":"admin@devsecurely.com","reset_token":null,"reset_token_expires":null,"active":null}
Aber ich bekomme Folgendes:

Code: Select all

{"userId":1,"email":"admin@devsecurely.com","resetToken":null,"resetTokenExpires":null,"active":null}
Die Parameter in der Entity-Klasse haben ein Snake_Case-Namensformat, ebenso wie die Spaltennamen in der Datenbank.
Warum ist JsonResponse? sich so verhalten? Gibt es eine Möglichkeit, das Problem zu beheben?
Vielen Dank im Voraus für Ihre Hilfe.
BEARBEITEN: Unten ist der Code für die Benutzerentität:< /p>

Code: Select all

namespace App\Entity;

use App\Repository\UsersRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity(repositoryClass: UsersRepository::class)]
class Users
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $user_id = null;

#[ORM\Column(length: 500)]
private ?string $email = null;

#[ORM\Column(length: 500, nullable: true)]
private ?string $reset_token = null;

#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $reset_token_expires = null;

#[ORM\Column]
private ?bool $active = null;

public function getUserId(): ?int
{
return $this->user_id;
}

public function setUserId(int $user_id): self
{
$this->user_id = $user_id;

return $this;
}

public function getEmail(): ?string
{
return $this->email;
}

public function setEmail(string $email): self
{
$this->email = $email;

return $this;
}

public function getResetToken(): ?string
{
return $this->reset_token;
}

public function setResetToken(?string $reset_token): self
{
$this->reset_token = $reset_token;

return $this;
}

public function getResetTokenExpires(): ?\DateTimeInterface
{
return $this->reset_token_expires;
}

public function setResetTokenExpires(\DateTimeInterface $reset_token_expires): self
{
$this->reset_token_expires = $reset_token_expires;

return $this;
}

public function isActive(): ?bool
{
return $this->active;
}

public function setActive(bool $active): self
{
$this->active = $active;

return $this;
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post