Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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 如何根据相关的OneToMany关联中的条件选择一组实体?_Php_Symfony_Doctrine Orm_Doctrine - Fatal编程技术网

Php 如何根据相关的OneToMany关联中的条件选择一组实体?

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

我使用的是Symfony4,我有两个实体
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