2017-06-19 41 views
4

我附加user_id,product_id與額外的字段。每件事情都正常工作,直到額外的領域應該更新。當該字段將被第二次填充而不是更新時,會將另一個添加到數據庫中。這很明顯,因爲我使用了附件而不是同步。但是當我使用同步時,我得到一個錯誤。Laravel同步manytomany錯誤

這是我的代碼:

$price = $request->input('price'); 
$product = Product::find($id); 
$product->users()->attach(Auth::id(), ['price' => $price]); 

,這是我得到的,當我使用同步錯誤:傳遞給 照亮\數據庫

參數1 \雄辯\關係\ BelongsToMany :: formatRecordsList() 必須是數組類型,給定整數

回答

2

同步方法接受一個I​​D陣列放置在樞軸表 也同步方法從表中刪除該模型,如果模型沒有在陣列和插入存在新數據到數據透視表。

所以你需要做

$product->users()->sync([Auth::id() => ['price' => $price]]); 
1

同步方法接受ID數組對不屬於給定的陣列中的中間table.Any ID的地方會從中間table.So你被移除應該通過一個數組作爲第一個參數sync()函數爲

$product->users()->sync([Auth::id() => ['price' => $price]]);