Я написал API с платформой Api, я сделал для сущностей:
- Флажок:
normalizationContext={"groups"={"CHECKBOX_READ"}, "enable_max_depth"=true}
- CheckboxGroup:
normalizationContext={"groups"={"CHECKBOX_GROUP_READ"}, "enable_max_depth"=true}
- Документ:
normalizationContext={"groups"={"DOCUMENT_READ"}, "enable_max_depth"=true}
- Пользователь:
normalizationContext={"groups"={"USER_READ"}, "enable_max_depth"=true}
Проблема связана с объектом-флажком. Я получаю частичный результат (отсутствует свойство сущности, даже если я добавляю аннотацию @Groups({"CHECKBOX_READ")
.
Если я удаляю normalizationContext из верхней части класса сущности Checkbox, я получаю все свойства.
Я уже пытался переименовать класс, очистить кеш и переименовать группу normalizationContext без успеха.
Вот мой класс Entbox Entity (без функции geth и setter):
<?php
/**
* @ApiResource(normalizationContext={"groups"={"CHECKBOX_READ"}, "enable_max_depth"=true})
* @ORM\Entity(repositoryClass="App\Repository\CheckboxRepository")
* @ApiFilter(SearchFilter::class, properties={
* "id":"exact",
* "case_a_cocher":"partial",
* "conditions_supplementaires":"exact",
* "document.id":"exact",
* "document.name":"exact",
* })
* @ApiFilter(BooleanFilter::class, properties={
* "mode_suppression",
* })
* @ApiFilter(OrderFilter::class, properties={
* "id",
* "case_a_cocher",
* "document.id",
* "document.name",
* "document.name",
* "mode_suppression",
* "site_neuf",
* "ream_ultra1",
* "ream_ultra2",
* "ream_accueil_cohab",
* "accueil_cohab",
* "moyen_mobile",
* "demontage",
* "osm",
* "lpwa",
* "swap",
* "ream_hr",
* "mest",
* })
*/
class Checkbox
{
/**
* @var int
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Groups({"CHECKBOX_READ"})
*/
private $id;
/**
* @var string Nom de la case à cocher
* @ORM\Column(type="string", length=511)
* @Constraints\NotBlank(message="Le nom de la case à cocher est requis et ne peut être vide")
* @Constraints\Length(min = 2, max = 511)
* @Groups({"CHECKBOX_READ"})
*/
private $case_a_cocher;
/**
* @var string[]
* @ORM\Column(type="string", length=511, nullable=true)
* @Constraints\Length(
* min = 2,
* max = 511,
* minMessage="La condition supplémentaire est trop courte. Elle ne peut avoir que {{ limit }} caractère ou plus.",
* maxMessage="La condition supplémentaire est trop longue. Elle ne peut avoir que {{ limit }} caractère ou moins."
* )
* @Groups({"CHECKBOX_READ"})
*/
private $conditions_supplementaires;
/**
* @var integer
* @ORM\Column(type="boolean")
* @Groups({"CHECKBOX_READ"})
*/
private $mode_suppression;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur du site neuf est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le site neuf ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le site neuf ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $site_neuf = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur du Réam Ultra1 est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le Réam Ultra1 ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le Réam Ultra1 ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $ream_ultra1 = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur du Réam Ultra2 est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le Réam Ultra2 ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le Réam Ultra2 ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $ream_ultra2 = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur du Réam + Accueil Cohab est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le Réam + Accueil Cohab ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le Réam + Accueil Cohab ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $ream_accueil_cohab = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de Accueil Cohab est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="L'Accueil Cohab ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="L'Accueil Cohab ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $accueil_cohab = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de Moyen Mobile est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le Moyen Mobile ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le Moyen Mobile ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $moyen_mobile = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de démontage est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le démontage ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le démontage ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $demontage = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de OSM est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="L'OSM ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="L'OSM ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $osm = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de LPWA est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="LPWA ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="LPWA ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $lpwa = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de SWAP est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="SWAP ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="SWAP ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $swap = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de Réam HR est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le Réam HR ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le Réam HR ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $ream_hr = 0;
/**
* @var integer
* @ORM\Column(type="integer")
* @Constraints\NotBlank(message="La valeur de MEST est requise et ne peut être vide")
* @Constraints\LessThanOrEqual(value="2", message="Le MEST ne peut pas avoir une valeur plus grande que 2")
* @Constraints\GreaterThanOrEqual(value="0", message="Le MEST ne peut pas avoir une valeur négative")
* @Groups({"CHECKBOX_READ"})
*/
private $mest = 0;
/**
* @var Document
* @ORM\ManyToOne(targetEntity="App\Entity\Document", inversedBy="checkboxes")
* @ORM\JoinColumn(nullable=false)
* @ApiSubresource()
* @Groups({"CHECKBOX_READ"})
*/
private $document;
/**
* @var CheckboxGroup
* @ORM\ManyToOne(targetEntity="App\Entity\CheckboxGroup", inversedBy="checkboxes")
* @ORM\JoinColumn(nullable=false)
* @ApiSubresource()
* @Groups({"CHECKBOX_READ"})
*/
private $checkbox_group;
Когда я пытаюсь использовать HTTP-запрос GET для /checkbox/1
, я получаю только следующий результат:
{
"@context": "string",
"@id": "string",
"@type": "string",
"id": 0,
"demontage": 0,
"osm": 0,
"lpwa": 0,
"swap": 0,
"mest": 0,
"document": {
"@context": "string",
"@id": "string",
"@type": "string"
}
}
Вы видите, что отсутствуют некоторые свойства, но я не понимаю причину. был бы очень признателен за любую помощь.
Не отображается сообщение об ошибке и ничего не тревожит в разделе /_profiler