gpt4 book ai didi

mysql - 来自 ManyToMany 关联的连接表是否可用于查询?

转载 作者:行者123 更新时间:2023-11-29 03:26:53 24 4
gpt4 key购买 nike

我正在尝试在我的发票存储库中创建一个查询,以返回所有没有关联任何付款发票

这两个实体之间存在多对多关联(注意 invoice_payment 连接表),如下面的实体定义摘录所示:

类发票:

/**
* @ORM\ManyToMany(targetEntity="Payment", inversedBy="invoice_ids")
* @ORM\JoinTable( name="invoice_payment",
* joinColumns={@ORM\JoinColumn(name="invoice_ids", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="payment_ids", referencedColumnName="id")} )
*/
protected $payment_ids;

类(class)费用:

    /**
* @ORM\ManyToMany(targetEntity="Invoice", mappedBy="payment_ids")
*/
protected $invoice_ids;

我意识到如果我可以访问连接表 invoice_payment 它应该是一个非常简单的查找 - 但是我没有在 Symfony/Doctrine 中找到任何讨论访问非实体数据库表的内容.这可能吗?

最佳答案

试一试。

$qb = $this->createQueryBuilder('i');
$qb->leftJoin('i.payments_ids', 'p')
->andWhere('p is null');

在旁注中,您的字段名称具有误导性。 payments_ids 应称为 payments - invoice_ids 与 inoices 相同。它们不返回 id,而是返回一个对象集合。

关于mysql - 来自 ManyToMany 关联的连接表是否可用于查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com