Связанное свойство не отображается в схеме POST платформы Api - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь создать / опубликовать нового пользователя и его город (уже существующий объект сущности), что является отношением «многие к одному». Несмотря на то, что я установил группы денормализации, свойство city не отображается, когда я go проверяю его в представлении swagger. Есть идеи, что я делаю не так?

Api Platform Swagger:

{
  "email": "string",
  "password": "string",
  "firstname": "string",
  "lastname": "string",
  "age": 0,
  "availStartDate": "2020-06-21T14:41:38.712Z",
  "availEndDate": "2020-06-21T14:41:38.712Z",
  "images": [
    {
      "filename": "string",
      "title": "string",
      "caption": "string",
      "image": "string"
    }
  ]
}

Вот объект User:

/**
 * @ApiResource(
 *     iri="http://schema.org/User",
 *     collectionOperations={"get"={
 *      "normalization_context"={"groups"={"user:read", "user:item:get"}},
 *     },
 *     "post"={
 *      "validation_groups"={"Default", "create"}
 *     }},
 *     itemOperations={"get"={
 *          "normalization_context"={"groups"={"user:read", "user:item:get"}}
 *     }, "put"},
 *     normalizationContext={"groups"={"user:read"}, "swagger_definition_name"="Read"},
 *     denormalizationContext={"groups"={"user:write"}, "swagger_definition_name"="Write"},
 *     attributes={
 *     "pagination_items_per_page"=10
 *     }
 * )
 * @ApiFilter(PropertyFilter::class)
 *
 * @UniqueEntity(fields={"email"})
 * @ORM\Entity(repositoryClass=UserRepository::class)
 */
class User implements UserInterface
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     * @Groups({"user:read", "message:read"})
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     * @Groups({"user:read", "user:write", "city:read"})
     * @Assert\NotBlank()
     * @Assert\Email(
     *     message = "The email entered is not a valid email."
     * )
     */
    private $email;

    /**
     * @ORM\Column(type="string", length=255)
     * @Groups({"user:write"})
     *
     */
    private $password
 

    /**
     * @ORM\ManyToOne(targetEntity=City::class, inversedBy="localUsers", fetch="EAGER")
     * @ORM\JoinColumn(nullable=true)
     * @Groups({"user:read", "user:write"})
     *
     */
    private $city;


   ......


   public function getCity(): ?City
{

    return $this->city;
}

public function setCity(?City $city): self
{
    $this->city = $city;

    return $this;
}
...