Я новичок в Symfony и пытаюсь создать json API.
Я пытаюсь вернуть сгенерированную Doctrine сущность с именем User в качестве ответа на одну из конечных точек. Однако при передаче экземпляра в функцию json:
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 = []);
}
}
Я получаю в ответ правильный объект User json, но все параметры были преобразованы из Snake_case в CamelCase.
Я ожидаю этого:
Я ожидаю этого:
р>
{"user_id":1,"email":"admin@devsecurely.com","reset_token":null,"reset_token_expires":null,"active":null}
Но я получаю следующее:
{"userId":1,"email":"admin@devsecurely.com","resetToken":null,"resetTokenExpires":null,"active":null}
Параметры в классе Entity имеют формат именования Snake_case, как и имена столбцов в базе данных.
Почему JsonResponse ведёт себя так? Есть ли способ это исправить?
Заранее благодарим за помощь.
РЕДАКТИРОВАТЬ: ниже приведен код для сущности «Пользователи»:< /p>
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;
}
}
Подробнее здесь: https://stackoverflow.com/questions/738 ... -camelcase
Symfony JsonResponse преобразует атрибуты Snake_case в CamelCase ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1735293783
Anonymous
Я новичок в Symfony и пытаюсь создать json API.
Я пытаюсь вернуть сгенерированную Doctrine сущность с именем User в качестве ответа на одну из конечных точек. Однако при передаче экземпляра в функцию json:
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 = []);
}
}
Я получаю в ответ правильный объект User json, но все параметры были преобразованы из Snake_case в CamelCase.
Я ожидаю этого:
Я ожидаю этого:
р>
{"user_id":1,"email":"admin@devsecurely.com","reset_token":null,"reset_token_expires":null,"active":null}
Но я получаю следующее:
{"userId":1,"email":"admin@devsecurely.com","resetToken":null,"resetTokenExpires":null,"active":null}
Параметры в классе Entity имеют формат именования Snake_case, как и имена столбцов в базе данных.
Почему JsonResponse ведёт себя так? Есть ли способ это исправить?
Заранее благодарим за помощь.
РЕДАКТИРОВАТЬ: ниже приведен код для сущности «Пользователи»:< /p>
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;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/73888065/symfony-jsonresponse-converts-snake-case-attributes-to-camelcase[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия