【问题标题】:Symfony 4 OneToOne relationship not pulling from databaseSymfony 4 OneToOne 关系未从数据库中提取
【发布时间】:2020-03-23 18:54:14
【问题描述】:

这个问题太奇怪了!

相互关联的实体结构示例:

物业 -> InstructionToSell (OneToOne) -> 接受报价(OneToOne)

如果我这样做:

$property = $repo->findOneBy([‘id’=> 1]);

它有效,所有关系都恢复正常。

但是现在,如果我在属性仓库中创建一个自定义方法来使用 LIKE 查询搜索邮政编码,那么接受的报​​价关系为空

为什么会发生这种情况让我很困惑?它是相同的实体,相同的关系,我只是通过like而不是直接通过Id加载它。

即使我使用 fetchAll,它也可以正常工作。

我希望我解释得足够好,很难解释我所看到的。

【问题讨论】:

    标签: doctrine-orm symfony4


    【解决方案1】:

    似乎“延迟加载”在这里起作用。

    您是否在自定义查询中明确编写了联接查询? (因为也许你应该)

    【讨论】:

      【解决方案2】:

      这是因为您可能已经创建了自定义查询,并且在创建它们时需要定义连接并选择它们。

      例如;

      
          $queryBuilder
              ->addSelect('p', 'i', 'o')
              ->join('p.instructionToSell', 'i')
              ->join('i.acceptedOffer', 'o')
              ->setParameter('name', $name)
              ->andWhere(
                   $queryBuilder->expr()->eq('p.name', ':name')
              );
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-30
        • 1970-01-01
        • 2019-08-20
        • 1970-01-01
        • 2011-02-23
        • 2021-07-04
        • 2016-03-12
        • 2021-05-15
        相关资源
        最近更新 更多