为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
摇曳的蔷薇 2021-12-03 15:55:08
我正在使用 Symfony4 并且我有两个实体User和Car.ACar有一个isRent类型的字段,bool还有一个user_id用于关系的数据库列。class User{    /**     * @var Collection     *     * @ORM\OneToMany(targetEntity="Car", mappedBy="user")     *     * @Serializer\Type("ArrayCollection<ListRestAPI\Entity\Cars>")     * @Serializer\Expose()     */    private $cars;class Car {    /**     * @var User     *     * @ORM\ManyToOne(targetEntity="User", inversedBy="cars")     */    private $user;现在我正在尝试获取所有租用汽车的用户。我当前的查询获取所有用户,无论他们是否租用汽车。$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');如何仅获取User已租用汽车的实体?
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

尝试andWhere()通过以下方式删除您的:

->having('c.isRent = 1')

由于您在查询中使用整数,因此无需使用绑定参数。您还应该删除setParameter().


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信