Я просмотрел ApiPlatform SymfonyCasts и до сих пор мне нравится то, что я могу с ней делать. Однако я столкнулся со следующим сценарием:
У меня есть класс Contract
со свойством baseContract
, которое указывает на объект, на котором должен быть основан новый объект. .
Оба denormalizationContext
и normalizationContext
установлены для всех полей (на данный момент) на contracts:write
и contracts:read
соответственно.
Когда от I go до /api
, обе конечные точки GET
и POST
показывают все свойства, но пропускают baseContract
...
Есть какие-то проблемы?
Основная идея c состоит в том, что я хочу иметь возможность размещать что-то вроде этого:
{
"name": "string",
"description": "string",
"contractNo": "string",
"baseContract": "/api/contacts/{some_id}
}
/**
* @ORM\Entity(repositoryClass=ContractRepository::class)
*
* @ApiResource(
* normalizationContext={"groups": "contract:read"},
* denormalizationContext={"groups": "contract:write"},
* collectionOperations={
* "get",
* "post"
* },
* itemOperations={
* "get"
* }
* )
*/
class Contract
{
......
/**
* @ORM\ManyToOne(targetEntity=Contract::class)
* @ORM\JoinColumn()
*
* @Groups({"contract:read", "contract:write"})
*/
private ?Contract $baseContract;