表格
VENDOR
id name approved
PRODUCT
id name price instock fky_prod_vendor_id
关系
VENDOR(hasMany products()) <- (one-to-many) -> (hasOne vendor())PRODUCT
查询
如果在模型中定义关系,我怎样才能使用Eloquent获取批准的供应商的所有产品库存?
我的SQL如下,但我需要使用Eloquent关系来实现以下目标。
select product.id
from product, vendor
where product.fky_prod_vendor_id = vendor.id
and vendor.approved = 'y'
and product.instock > 0
由于
ķ
答案 0 :(得分:0)
由于存在关系,我们可以使用查询关系存在方法来实现这一点,其中正如@svrnm正确指出
PRODUCT::where('instock','>',0)
->whereHas('vendor', function ($query) { // Using Eloquent Query Existence, first parameter is name of relationship method, inside function is where clause on related model
$query->where('approved','y');
})->get();
这是Laravel的神奇之处
由于
ķ