0

我是 Symfony 的新手,我不确定我是否得到了我期望的结果,尽管这并不意味着它们是错误的。

我有 2 个类 Property 和 PropertyGuestAmenity

当我运行控制台命令来更新架构时,我生成了 2 个表。属性和 property_guest_amenity。正如我所料。

2 个表链接在一起,我已将表映射设置为

在物业

     /**
      * @ORM\ManyToMany(targetEntity="PropertyGuestAmenity",
inversedBy="properties")
      * @ORM\JoinTable(name="property_amenity_map")
      */
     protected $amenities;

在 PropertyGuestAmenity

 /**
  * @ORM\ManyToMany(targetEntity="Property", inversedBy="amenities")
  */
 protected $property=null;

当我运行模式更新时,它会生成我希望它生成的 property_amenity_map 表,但它也会生成 propertyguestamenity_property,它看起来与 property_amenity_map 相同,但字段顺序相反。

我做错了什么还是这是正常行为?

4

2 回答 2

2

在关系中,一侧是 inversedBy,另一侧是映射的。一点警告。

所以,在你的 PropertyGuestAmenity

/**
 * @ORM\ManyToMany(targetEntity="Property", mappedBy="amenities")
 */
protected $property=null;
于 2013-05-16T17:22:52.370 回答
0

是的,您的声明中有一个问题,让教义认为您必须拥有多对多关系。

第一个是“属性”,第二个是“设施”。但是在您的第二堂课中,您只有“财产”(没有“财产”)。

所以 Doctrine 建立了 2 个关系。

于 2013-05-16T17:09:05.357 回答