我遇到很多这方面的问题。我的代码是
$purchase_order = PurchaseOrder::find(1);
$item = Item::find(1);
$purchase_order->items()->save($item);
这个效果很好。我有一个它创建的数据透视表名称items_purchase_order item_id 1和purchase_order_id 1
问题是关于如何添加它的pivotColumn。
$array = [
'qty' => 4,
'unit_price' => '23'
];
我的PurchaseOrder模型
return $this->belongsToMany('App\Item', 'items_purchase_orders', 'purchase_order_id', 'item_id')->withPivot('qty','unit_price');
我在这里尝试过其他例子,但无济于事。喜欢这个
$purchase_order = PurchaseOrder::find(1);
$item = new Item($array);
$purchase_order->items()->save($item);
这变得模棱两可,因为没有项目ID。物料已经创建,采购订单是我要创建的。我用物品模型尝试了反向的。
return $this->belongsToMany('App\PurchaseOrder', 'items_purchase_orders', 'item_id', 'purchase_order_id')->withPivot('qty','unit_price');
//pivot table added with purchase_order columns
$array = [
'po_number' => '454jk', // I minimized it to one column. Purchase Orders Column
'qty' => 4, // Pivot Column
'unit_price' => '23' // Pivot Column
];
$item = Item::find(1);
$purchase_order= new PurchaseOrder($array);
$item->purchaseOrder()->save($purchase_order);
仍然不起作用。
我想我发现了这个1 $ shop-> products() - > attach(1,['products_amount'=> 100,'price'=> 49.99]);是的,它的工作!参考http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/