symfony - findAll 没有为 ManyToMany 提供任何输出
问题描述
我最近开始使用Symfony
,但我不明白为什么statuses
(ManyToMany) 没有在findAll
查询中提供任何输出。我需要在数据库中输入的最后/当前值。
App\Entity\Service {#752 ▼
-id: 5
-name: "Helpdesk"
-description: null
-url: null
-serviceGroup: App\Entity\ServiceGroup {#728 ▼
-id: 2
-name: "Webserver 2"
-description: null
-services: Doctrine\ORM\PersistentCollection {#729 ▶}
-order_id: 2
}
-order_id: 3
-statuses: Doctrine\ORM\PersistentCollection {#753 ▼
-snapshot: []
-owner: App\Entity\Service {#752}
-association: array:16 [ …16]
-em: Doctrine\ORM\EntityManager {#383 …11}
-backRefFieldName: "services"
-typeClass: Doctrine\ORM\Mapping\ClassMetadata {#675 …}
-isDirty: false
#collection: Doctrine\Common\Collections\ArrayCollection {#754 ▶}
#initialized: false
}
}
//为easyadmin编辑我已经在Entity/Service.php中添加了一个函数,我不能只将它用于twig tempalte吗?
public function getLastStatus()
{
return $this->getStatuses()->last();
}
解决方案
您应该尝试在@ORM\ManyToMany() 内的属性“statuses”中修改您的类服务,方法是添加:fetch="EAGER"(它应该提供所有对象,而不仅仅是代理)。
或者,您还可以在 ServiceRepository 中创建一个函数 findStatuses(Service $service) ,使用查询生成器获取所有状态。您将在您的 ServiceRepository 中找到它的示例。
推荐阅读
- excel - 为什么 Excel VBA 不能在 Word 文档中查找和替换
- c - 如何从父进程向子进程发出信号?
- bash - -mtime 在 bash 脚本中是什么意思?
- wpf - WPF 进度条样式文本
- mongodb - Mongoose Schema 规划:使用 ObjectID 引用还是使用类型数组:[otherSchema]?
- node.js - 安装 Foundation 模板,未安装节点模块
- docker - 如何在 Docker 容器中运行 AWS Lambda 层?
- javascript - 正在寻找我的不和谐机器人的 8ball 命令的修复程序
- powershell - 默认参数集不是通过 if 语句运行的
- python - 如何知道哪些分隔符分隔了拆分中的元素?