我使用Laravel 5.4開發電子商務(具有多種產品屬性功能)網站。一切工作正常。但是,當我嘗試同步Pivot表中同一個屬性的多個值時。 Laravel忽略了重複的pares。例如,我有一個名爲「網絡」的屬性,它有3個值:2G,3G,4G。移動支持3G和4G網絡。我想在數據庫中同步3G和4G值。拉拉維爾忽略了其中之一。如何在Laravel中同步同一個屬性的多個值?
Products Table:
ID - Product Name
1 - Test Mobile
Attributes Table
ID - AttributeName
1 - Network
AttributeValues Table
ID - AttributeID - AttributeValue
1 - 1 - 2G
2 - 1 - 3G
3 - 1 - 4G
ProductAttributes Table
ID - AttributeID - ProductID - AttributeValue
1 - 1 - 1 - 3G
1 - 1 - 1 - 4G
我想將Product Attributes存儲在「ProductAttributes」表中。但是Laravel忽略了其中之一。
我節省了數據這樣的:
$product = Product::create([
'name' => 'Test Mobile'
]);
$product->attributes()->sync([
1 => ['AttributeValue' => '3G'],
1 => ['AttributeValue' => '4G']
]);
任何建議,想法?
你的數組有重複的鍵。 – Neat
在ProductAttributes表中,您應該具有AttributeValues.ID字段來代替AttributeID。這種聯繫將是獨一無二的。 – Shadow
@Shadow大點。你能告訴我如何通過產品模型訪問屬性表嗎? –