ManyToMany с композитным ключом с api-платформой - PullRequest
0 голосов
/ 22 мая 2019

Я использую Api Platform.
У меня есть две сущности Player и Team и одна сущность PlayerHasTeam для представления в базе данных даты, когда игрок присоединился к команде.

Это моя сущность PlayerHasTeam:

/**
 * @ApiResource(
 *     collectionOperations={
 *         "get",
 *         "post"
 *     },
 *     itemOperations={
 *         "get",
 *         "put",
 *         "delete"
 *     }
 * )

 * @ORM\Table(name="playerHasTeam")
 * @ORM\Entity
 */
class PlayerHasTeam
{
/** 
 * @var Player
 *
 * @ORM\ManyToOne(targetEntity="App\Entity\Player", inversedBy="id")
 * @ORM\JoinColumn(referencedColumnName="idPlayer", name="idPlayer", nullable=false)
 * 
 * @ORM\Id
 */
private $player;


/**
 * @var Team
 *
 * @ORM\ManyToOne(targetEntity="App\Entity\Team", inversedBy="id")
 * @ORM\JoinColumn(referencedColumnName="idTeam", name="idTeam", nullable=false)
 * 
 * @ORM\Id
 */
private $team;

/**
 * @var DateTime
 *
 * @ORM\Column(name="joinedAt", type="datetime", nullable=false)
 */
private $joinedAt;



(Getters and Setters)

Проблема в следующем, мне нужно выполнить запрос GET, PUT и DELETE для этого составного объекта.
Api-платформа определяет следующие маршруты:
GET / player_has_teams
POST / player_has_teams
GET / player_has_teams / {id}
PUT / player_has_teams / {id}
DELETE / player_has_teams / {id}

Я не могу использовать последние 3, потому что у меня нет сгенерированного идентификатора.
Я хочу выполнять свои запросы с помощью маршрута, например / player_has_teams / {idPlayer} / {idTeam}

Похоже, api-платформа не справляется с этим делом.

У вас есть предложения?
Спасибо

1 Ответ

0 голосов
/ 23 мая 2019

Хорошо, я нашел решение.
Я просто должен назвать свой маршрут следующим образом
GET / player_has_teams / player = 1; команда = 1
PUT / player_has_teams / player = 1; команда = 1

...