Laravel 5.5与中间表有很多很多关系

时间:2018-02-09 08:43:32

标签: laravel eloquent many-to-many

请帮忙,

我在ITEMS, SUPPLIERS and PURCHASE_ORDERS

之间的laravel中有这些关系

由于ITEMSSUPPLIERS有很多关系,我在它们之间创建了一个名为ITEM_SUPPLIER的中间表。

现在我需要在PURCHASE_ORDERS和中间表ITEM_SUPPLIER之间建立多对多的关系。

我如何建立关系? 我应该在它们之间创建一个中间表,最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

id列添加到item_supplier,并为数据透视表创建ItemSupplier模型。然后在item_supplier_purchase_orderbelongsToMany()模型之间创建一个新的ItemSupplier数据透视表和两个PurchaseOrder关系。

此外,当从item_supplier数据透视表中删除相关记录时,请不要忘记使用cascade deleting从新数据透视表中删除记录。

答案 1 :(得分:0)

为数据透视表ItemSupplier添加一个额外列id的模型,扩展数据透视

use Illuminate\Database\Eloquent\Relations\Pivot;

class ItemSupplier extends Pivot
{

    public function purchaseOrder()
    {
       return $this->belongsToMany(PURCHASE_ORDERS::class, item_supplier_purchase_order);
    }

}

如您所见,您需要创建新的item_supplier_purchase_order数据透视表并添加关系

class PURCHASE_ORDERS extends Model
{

    public function purchaseOrder()
    {
       return $this->belongsToMany(ItemSupplier::class, item_supplier_purchase_order);
    }

}