Symfony 一对多选定项目

Symfony 一对多选定项目,symfony,sulu,Symfony,Sulu,我有两个实体: 团队(id、姓名、简称…) 团队成员(id、团队id、球员id) 在admin中,我有multiselect字段,在提交时它发送ids数组。如何将其保存在相关表中 这是我在TeamsController中的一部分代码 /** * @param array<string, mixed> $data */ protected function mapDataToEntity(array $data, Teams $entity): void { $image

我有两个实体:

团队(id、姓名、简称…) 团队成员(id、团队id、球员id)

在admin中,我有multiselect字段,在提交时它发送ids数组。如何将其保存在相关表中

这是我在TeamsController中的一部分代码

/**
 * @param array<string, mixed> $data
 */
protected function mapDataToEntity(array $data, Teams $entity): void
{
    $image = null;

    if ($imageId = ($data['logo']['id'] ?? null))
    {
        $image = $this->mediaRepository->findMediaById($imageId);
    }
    $entity->setLogo($image);
    $entity->setName($data['name']);
    $entity->setCountry($data['country']);
    $entity->setGender($data['gender']);
    $entity->setShortName($data['shortName']);
    $entity->setPlayers($data['players']); // <-- how do I handle THIS?
}
/**
*@param数组$data
*/
受保护函数mapDataToEntity(数组$data,团队$entity):无效
{
$image=null;
如果($imageId=($data['logo']['id']??null))
{
$image=$this->mediaRepository->findMediaById($imageId);
}
$entity->setLogo($image);
$entity->setName($data['name']);
$entity->setCountry($data['country']);
$entity->setGender($data['gender']);
$entity->setShortName($data['shortName']);

$entity->setPlayers($data['players']);//您需要加载需要将其映射到实体的实体


在这里,您最多可以查看一下关于关联映射的条令/orm文档:

您只需在加载图像时加载实体即可。
$entity->setPlayers($this->playerRepository->findById($data['players']);