Ham*_*bot 5 symfony doctrine-orm
以下是一些简单的购买/产品关系的表格:
Purchase
- id
- status_id
Product
- id
- name
ProductPurchase
- id
- product_id
- purchase_id
- quantity
Run Code Online (Sandbox Code Playgroud)
我需要查询所有Purchases具有status_id = X和 且至少有一个ProductPurchase其中product_id = X
我来自 Laravel 环境,所以我之前所做的事情是这样的:
$purchases = Purchase::where('status_id',$s_id)
->whereHas(['productPurchases' => function ($query) use($product_id) {
$query->where('product_id',$product_id)
}])->get();
Run Code Online (Sandbox Code Playgroud)
然而,我在学说文档中找不到任何类似的解决方案,并且我确信我没有正确的关键字来进行搜索......
非常感谢您的帮助!
使用学说查询构建器,您可以这样做:
$status_id = X;
$product_id = Y;
$queryBuilder = $this->createQueryBuilder('p')
->innerJoin('p.productPurchase', 'pp')
->where('p.status = :status_id')
->andWhere('pp.product = :product_id')
->setParameters([
'status_id' => $status_id,
'product_id' => $product_id,
]);
);
$query = $queryBuilder->getQuery();
return $query->getResult();
Run Code Online (Sandbox Code Playgroud)
p您的购买和innerjoinon ProductPurchase(别名pp)pp.product_id设置也是如此Y,以确保我们只获得那些具有此类关系/关联的购买。
| 归档时间: |
|
| 查看次数: |
980 次 |
| 最近记录: |