Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 为什么条令会自动将外键添加到查询中?_Symfony_Doctrine Orm_Doctrine Extensions - Fatal编程技术网

Symfony 为什么条令会自动将外键添加到查询中?

Symfony 为什么条令会自动将外键添加到查询中?,symfony,doctrine-orm,doctrine-extensions,Symfony,Doctrine Orm,Doctrine Extensions,我刚刚发现,即使我选择了带有id和name字段的partial,doctor也会自动将所有外键添加到所选字段中。如何全局或每次查询关闭它?当我在寻找这样的答案时,我看到了: 我的查询如下所示: $queryBuilder = $this->getEntityManager()->createQueryBuilder() ->select('partial c.{id, name}') ->from('MyBundle:Car', 'c') ->wh

我刚刚发现,即使我选择了带有id和name字段的partial,doctor也会自动将所有外键添加到所选字段中。如何全局或每次查询关闭它?当我在寻找这样的答案时,我看到了:

我的查询如下所示:

$queryBuilder = $this->getEntityManager()->createQueryBuilder()
   ->select('partial c.{id, name}')
   ->from('MyBundle:Car', 'c')
   ->where('c.slug = :slug')
   ->setParameter('slug', $slug);
由此产生:

SELECT m0_.id AS id_0, m0_.name AS mname_1 m0_.created_by AS created_by_5, m0_.updated_by AS updated_by_6, m0_.config_id AS config_id_7, m0_.client_id AS client_id_8 
FROM cars m0_ 
WHERE m0_.mslug = ? 
["audi-a8"] []

您是否用
fetch=“EAGER”
标记了您的
createdBy
updatedBy
关系?@Wilt否。我没有以任何方式标记它。在我发现这个问题后,我在我的问题中添加了一个链接,我甚至将其设置为额外的懒惰,但这没有帮助。首先,createdBy和UpdatedBy的行为类似于EAGER,而其他FK只是添加到查询中——在这两种情况下,我都不知道为什么。