场景:我有两个实体。产品&产品组。产品与ProductGroup有多对一的关系。我软删除ProductGroup。然后我尝试在具有软删除产品组的产品上调用getProductGroup。
问题:而不是预期的空结果我得到了一个"消息:找不到实体。"异常消息。
$productGroupName = $product->getProductGroup() !== null ? $product->getProductGroup()->getName() : '';
答案 0 :(得分:0)
这是因为Doctrine2正在生成代理,而不是soft-deletable
的情况,尽管我正在使用它。但是在没有实现此soft-deleteable
的实体中,我遇到了同样的问题。所以固定的是在实体注释上添加fetch="EAGER"
,其中定义了关系。像
/**
* @var \ReisesparerAPIs\Entity\Vouchers
*
* @ORM\OneToOne(targetEntity="ReisesparerAPIs\Entity\Vouchers", inversedBy="couponOrder", fetch="EAGER")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="voucher_id", referencedColumnName="id")
* })
*/
private $voucher;