Orm 条令未正确水合实体(ID是字符串而不是整数)

Orm 条令未正确水合实体(ID是字符串而不是整数),orm,doctrine-orm,Orm,Doctrine Orm,我正在尝试将遗留数据库映射到一些新实体。两个实体Wishlist和Product具有多对多关系,因此有一个透视表必须映射为一个实体WishlistProduct,两侧都有多对一关联 这种关系看起来像: ┌──────────┐ M:1 ┌─────────────────┐ 1:M ┌─────────┐ │ Wishlist │───────│ WishlistProduct │───────│ Product │ └──────────┘ └───────────────

我正在尝试将遗留数据库映射到一些新实体。两个实体
Wishlist
Product
具有多对多关系,因此有一个透视表必须映射为一个实体
WishlistProduct
,两侧都有多对一关联

这种关系看起来像:

┌──────────┐  M:1  ┌─────────────────┐  1:M  ┌─────────┐
│ Wishlist │───────│ WishlistProduct │───────│ Product │
└──────────┘       └─────────────────┘       └─────────┘

但是,Doctrine继续使用id列的字符串来填充
Product::$id
,并且所有其他字段都为空。

出现此问题的原因是,尽管
Wishlist::$wishlistProducts
属性正确分配了
Doctrine\Common\Collections\ArrayCollection
的新实例,对于
产品::$wishlistProducts
没有执行相同的操作,因此如果该值为空,则无法正确水合该实体

无论何时创建自己的psuedo多对多关系,请确保两个实体都具有:

use Doctrine\Common\Collections\ArrayCollection;

class EntityOnOneSideOfRelationship
{
    private $pivotEntity;

    public function __construct()
    {
        $this->pivotEntity = new ArrayCollection();
    }
}