【问题标题】:Laravel Eloquent Query Builder (with JOIN)Laravel Eloquent 查询构建器(带 JOIN)
【发布时间】:2016-02-09 05:37:15
【问题描述】:

表格

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

谢谢

K

【问题讨论】:

标签: eloquent laravel-5.1


【解决方案1】:

由于存在关系,我们可以使用查询关系存在方法来实现这一点,正如@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 的魔力

谢谢

K

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 2016-03-30
    • 1970-01-01
    • 2016-02-11
    • 2021-08-17
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多