1

我有三个模型:

Product
Inventory
Order

它们之间的关系如下:

Order 与 Inventory 和 $ninventory->belongsTo('product'); 有 manyToMany 关系

/** Product Model **/
class Product extend Model 
{

    public function inventories()
    {
        return $this->hasMany('App\Inventory');
    }
}

/** Inventory Model **/
class Inventory extend Model 
{

    public function products()
    {
        return $this->belongsTo('App\Product');
    }
}

/** Order Model **/
class Order extend Model {

    public function inventories()
    {
        return $this->belongsToMany('App\Inventory','order_items');
    }


    //how do I get this?
    public function products()
    {

    }
}

由于数据透视表,这hasManyThrough将不起作用。order_items如何获得订单的产品?

4

1 回答 1

0

这种情况下没有原生关系。

我创建了一个HasManyThrough支持关系BelongsToManyGitHub 上的存储库

安装后,您可以像这样使用它:

class Order extends Model {
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;

    public function products() {
        return $this->hasManyDeep(Product::class,
            ['order_items', Inventory::class],
            [null, null, 'id'],
            [null, null, 'product_id']
        );
    }
}
于 2018-07-17T21:58:59.450 回答