Php 如何根据相关的OneToMany关联中的条件选择一组实体?
我使用的是Symfony4,我有两个实体Php 如何根据相关的OneToMany关联中的条件选择一组实体?,php,symfony,doctrine-orm,doctrine,Php,Symfony,Doctrine Orm,Doctrine,我使用的是Symfony4,我有两个实体User和Car Car有一个类型为bool的字段isRent,还有一个数据库列user\u id 类用户 { /** *@var集合 * *@ORM\OneToMany(targetEntity=“Car”,mappedBy=“user”) * *@Serializer\Type(“ArrayCollection”) *@Serializer\Expose() */ 私家车;; 等级车 { /** *@var用户 * *@ORM\manytone(ta
User
和Car
Car
有一个类型为bool
的字段isRent
,还有一个数据库列user\u id
类用户
{
/**
*@var集合
*
*@ORM\OneToMany(targetEntity=“Car”,mappedBy=“user”)
*
*@Serializer\Type(“ArrayCollection”)
*@Serializer\Expose()
*/
私家车;;
等级车
{
/**
*@var用户
*
*@ORM\manytone(targetEntity=“User”,inversedBy=“cars”)
*/
私人用户;
现在,我正试图找到所有租车的用户
我当前的查询获取所有用户,不管他们是否有租车
$query = $this->createQueryBuilder('u')
->select()
->join('u.cars', 'c')
->andWhere(sprintf('%c.is_rent = :isRent', 'c'))
->setParameter('isRent', '1')
->groupBy('u.id')
->addOrderBy('u.id');
我如何才能仅获取已租车的
用户
实体?请尝试通过以下方式删除您的和where()
:
->having('c.isRent = 1')
由于您在查询中使用的是整数,因此无需使用绑定参数。您还应删除
setParameter()
->和where(sprintf(“%c.is\u rent=:isRent”,“c”)
?这是什么sprintf
?你为什么要这样做?啊,我在尽我所能,在网上看到了这个东西,尝试了一下…是的,我想让在实体车的php文件中显示所有字段的车的用户,因为%c.is\u rent可能应该更改为%c.isRent