从Laravel 5.4中的关系关系中拉出不同的行?

时间:2017-03-12 08:48:28

标签: laravel-5 eloquent

我有这种关键情况,我想要所有属于当前数据关系的数据集。

足够混淆,让我们举一个例子:

  • 我有三个模型,即ProductVariantSize
  • 每个Variant都属于Product
  • 每个Variant都有一个Size
  • 每个Product都有许多Variant
  • 所有Size都是独立的,有很多Variant

我们的问题

我有Product,我希望所有不同的Size生活Variant

模型

class Product {
    public function variants() {
        return $this->hasMany(Variant::class);
    }
}

class Variant {
    public function size() {
        return $this->belongsTo(Size::class);
    }
}

当前解决方法

foreach($product->variants as $variant) {
    echo $variant->size->name;
}

目前一切看起来都很好并且有效但我想要$product->sizes之类的东西,因为当前的解决方案解决方法存在(n+1) queries问题。因此,它必须返回属于当前Variant的所有Product的所有不同大小。

我可以使用连接执行此操作,但我想使用Eloquent方法执行此操作,请帮助!!!

0 个答案:

没有答案