php - 在 Symfony 3.4 中选择没有某些属性的对象
问题描述
我在 Symfony 中有一个我无法解决的问题。我有一个实体类,例如类别,我有 $id、$name、$description、OneToMany User[] $members、OneToMany Book[] $books 现在...我需要获取所有类别(例如 WHERE description IS NOT NULL ) 但在结果中,我不想拥有 $books。
我需要带有 ID、名称、描述和 [member1, member2...] 但没有书籍的类别。我使用类似的东西:
$em->getRepository('AppBundle:Category')->findAll();
解决方案
您可以使用->select('fieldA, fieldB')
查询特定字段。
在您的存储库中创建一个方法以进行自定义查询:
public function findAllWithoutBooks()
{
return $this->createQueryBuilder('c')
->select('c.id, c.name, c.description')
->leftJoin('c.members', 'm')
->addSelect('m.id AS member_id, m.name AS member_name')
->andWhere('c.description IS NOT NULL')
->getQuery()
->getResult()
}
并像任何其他方法一样使用它:
$em->getRepository('AppBundle:Category')->findAllWithoutBooks();
推荐阅读
- javascript - 在 formik initialValues 中传递空值
- angular - ckeditor4-angular :删除链接目标值
- javascript - 在codeigniter 4中使用时刻js作为日期时间戳
- cpu - Intel Xeon E5-2640 v4 CPU 的理论最大性能 (FLOPS),仅使用加法?
- swift - 在 vapor4 中返回合理的数据
- python - 在 100,000 多个唯一 URL 的数据帧上使用 aiohttp
- reactjs - 反应上下文不更新组件
- python - 将熊猫数据框导出到 postgresql 数据库时遇到问题
- java - 如果第一个写入器失败,CompositeItemWriter 会跳过第二个写入器
- node.js - axios response.blob 不是函数