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
Php 找不到id为(155)的“AppBundle\Entity\User”类型的实体_Php_Symfony_Doctrine - Fatal编程技术网

Php 找不到id为(155)的“AppBundle\Entity\User”类型的实体

Php 找不到id为(155)的“AppBundle\Entity\User”类型的实体,php,symfony,doctrine,Php,Symfony,Doctrine,当我迭代一组groupusers的用户时,显示用户电子邮件是一种多人关系,我得到的id155的“AppBundle\Entity\User”类型的错误实体没有找到。但是,当我显示引发异常的用户时,我看到: // In my controller dump($groups[0]->getUser()); // Output User {#761 ▼ +__isInitialized__: false #id: 155 #email: null #firstName: nul

当我迭代一组groupusers的用户时,显示用户电子邮件是一种多人关系,我得到的id155的“AppBundle\Entity\User”类型的错误实体没有找到。但是,当我显示引发异常的用户时,我看到:

// In my controller
dump($groups[0]->getUser());

// Output
User {#761 ▼
  +__isInitialized__: false
  #id: 155
  #email: null
  #firstName: null
  #lastName: null
  #roles: null
   …2
}
此外,我的数据库中确实存在id等于155的用户

更新1


想出来了!!实际上,有一个启用的条令过滤器,它在每个sql查询中添加一个条件。当我得到一个组时,与它相关的用户不会从数据库中加载,只有它的id被加载到组实体中。当我尝试访问id以外的其他用户字段时,它将执行sql连接查询。同样,条令过滤器甚至将条件添加到连接条件中,这将导致一个空结果


因此,错误消息显然是误导性的。

我发现有问题的表中有孤儿,出于某种原因,删除对象不是级联的

就我而言:

从ID=2的访问组中选择*; -0个结果。 从组中选择*,其中fk\u grupo\u ACESSO=2; -2结果。
如何加载组->用户关联?似乎延迟加载用户未处于活动状态。无论如何,我推荐一个自定义存储库获取连接以提高性能。您是如何修复它的?有几种解决方案:1-动态删除筛选器编辑原则查询2-执行本机查询,原则筛选器不会对其进行编辑。例如,您指的是从EntityReporto查找或查找方法吗?因为我正在使用它们,我得到了错误。我不知道该如何改变我的方法,我认为这可能是另一个解决方案:-?
public function getByCriteria(array $criteria)
{
    $qb = $this->createQueryBuilder('g');
    // ....


    return $qb
            ->getQuery()
            // This does NOT change anything ?? Isn't this supposed to load related user??
            // http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#temporarily-change-fetch-mode-in-dql
            ->setFetchMode('class_namespace', 'user', ClassMetadata::FETCH_EAGER)
            ->getResult();
}