这个问题太奇怪了!
相互关联的实体结构示例:
财产->销售说明(一对一(->接受报价(一对一(
如果我做了这样的事情:
$property = $repo->findOneBy([‘id’=> 1]);
它起作用了,所有的关系都恢复得很好。
但现在,如果我在属性回购中创建一个自定义方法,用LIKE查询搜索邮政编码,那么acceptedOffer关系为空
我很困惑为什么会发生这种事?它是相同的实体,相同的关系,我只是通过点赞加载它,而不是直接通过Id加载。
即使我使用fetchAll,它也能正常工作。
我希望我解释得足够好——很难解释我所看到的。
似乎"懒惰加载"在这里起作用。
您是否在自定义查询中明确地编写了联接查询?(因为也许你应该(
这是因为您可能已经创建了自定义查询,在创建它们时,您需要定义连接并选择它们。
例如;
$queryBuilder
->addSelect('p', 'i', 'o')
->join('p.instructionToSell', 'i')
->join('i.acceptedOffer', 'o')
->setParameter('name', $name)
->andWhere(
$queryBuilder->expr()->eq('p.name', ':name')
);