我有一个名为Freelance的表,它包含province_id列,该列链接到具有以下结构的geo_province_entity表:
id | region_id | name当我找回一个自由职业者时,我正试图返回这个地区,所以我做到了:
/**
* @ORM\OneToOne(targetEntity="App\PageBundle\Entity\GeoRegionEntity")
* @ORM\JoinTable(name="geo_province_entity",
* joinColumns={@ORM\JoinColumn(name="region_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="province_id", referencedColumnName="id")}
* )
*/
protected $region;我使用JoinTable链接包含region_id的geo_province_entity,并试图链接id of get_region_entity。
似乎这还不够,事实上我得到了这个错误:
未找到
列:“字段列表”中的1054个未知列“f0_.region_id”
同时,我没有任何问题去取回这个省:
/**
* @ORM\ManyToOne(targetEntity="App\PageBundle\Entity\GeoProvinceEntity", inversedBy="geo_province_entity")
* @ORM\JoinColumn(name="province_id", referencedColumnName="id")
*/
protected $province;本质上,为了检索区域名称,我必须使用geo_province_entity列通过region_id创建一个关系,有任何方法可以这样做吗?
表结构:
自由职业者
| id | province_id |geo_province_entity
| id | name | region_id |geo_region_entity
| id | name | nation_id |发布于 2022-10-10 10:25:13
JoinTable通常用于ManyToMany关系,此表仅包含两个关系字段,在ManyToMany中为关系表创建附加字段并不是不可能的。有必要建立更多的关系。
自由职业者
/**
* @ORM\ManyToOne(targetEntity="App\PageBundle\Entity\GeoProvinceEntity")
* @ORM\JoinColumn(name="province_id", referencedColumnName="id")
*/
protected $geoProvinceEntity;GeoProvinceEntity
/**
* @ORM\ManyToOne(targetEntity="App\PageBundle\Entity\GeoRegionEntity") // or OneToOne
* @ORM\JoinColumn(name="region_id", referencedColumnName="id")
*/
protected $geoRegionEntity;您可以通过自由职业者获得的区域实体:
$freelance->getGeoProvinceEntity()->geoRegionEntity();https://stackoverflow.com/questions/73986186
复制相似问题