看起来当我忘记将leftJoin放入我的查询中时,Doctrine会在我选择它们之后延迟加载关系。即如果我做了类似的事情:
$property = PropertyTable::getInstance()->createQuery('o')
->leftJoin('o.Features f')
->execute() ;
我仍然可以访问$ property->吸引力,即使我没有在此查询中加载它们。所以我猜Doctrine通过调用另一个'SELECT'在内部完成它。有没有办法通过抛出一些异常来阻止这种自动加载?这将有助于我创建更好,更快的查询。
答案 0 :(得分:-1)
你看过它产生的实际sql吗?
试试->getSql()
。当您尝试访问相关字段时,可能正在执行另一个查询。
如果您想避免这种情况,请不要访问相关字段!