【问题标题】:Laravel - Filtering a Model by Condition between "a Field and Its Relationship Model Field"Laravel - 按“字段及其关系模型字段”之间的条件过滤模型
【发布时间】:2021-01-19 10:05:22
【问题描述】:
我有这两个模型是一对一的关系。
“产品”
“产品数据”
- 身份证
- product_id
- 价格
- oh_hand
我想获取其 on_hand 小于的 product_data 计数
其相关产品的 minimum_required。
我已经尝试过子查询,但我仍然无法弄清楚。我想要的查询可能看起来像这样。
$low_products_count = ProductDetail::where('on_hand', '<', Product::select('minimum_required')->count();
【问题讨论】:
标签:
php
laravel
eloquent
orm
subquery
【解决方案1】:
你可以加入表格然后使用'whereColumn':
$low_products_count =Product::join('product_data','product_data.product_id','=',
'products.id')->whereColumn('product_data.on_hand','<','products.minimum_required')->get();
【解决方案2】:
我对 eloquent 没有经验所以在这里,我与查询生成器分享我的知识。
你可以这样做->
$low_products_count=DB::table('products')
->join('product_data','product_data.product_id','=',
'product.id')
->where('product_data.on_hand','<','products.minimum_required')->get();
你可以使用这个概念。