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();
}
}