首页 > 解决方案 > 现有模式的多对多关系表的字段名称

问题描述

我正在使用 Symfony 4.4,我必须通过 entityManager 从遗留数据库中获取数据

有 2 个表artistfun_fact一个关系表artist_fun_fact

艺术家.php

  /**
   * @var FunFact[]|null
   * @ORM\ManyToMany(targetEntity="App\Entity\Legacy\FunFact", inversedBy="artists")
   * @ORM\JoinTable(name="artist_fun_fact", schema="legacy")
   * @ORM\JoinColumn(name="artist_id", referencedColumnName="id")
   */
  private $funfacts;

FunFact.php

  /**
   * @var Artist[]|null
   * @ORM\ManyToMany(targetEntity="App\Entity\Legacy\Artist", mappedBy="funfacts")
   * @ORM\JoinColumn(name="fun_fact_id", referencedColumnName="id")
   */
  private $artists;

并且关系表具有以下字段(我无法修改,因为数据库和实体是只读的):

当我运行代码时,我得到了:

SQLSTATE [42S22]:未找到列:1054 未知列 'legacy.artist_fun_fact。'on 子句'中的funfact_id '

信息。很明显,我的指令无效,但我不@ORM\JoinColumn(name="fun_fact_id", referencedColumnName="id")知道我还能如何告诉 ORM 她正在寻找的字段是fun_fact_idfunfact_id

提前谢谢你的帮助!

标签: symfonyormdoctrine

解决方案


推荐阅读