Ich entwickle eine eCommerce (mit mehreren Produktattributen) Website mit Laravel 5.4. Alles funktioniert gut. Aber wenn ich versuche, mehrere Werte desselben Attributs in der Pivot-Tabelle zu synchronisieren. Laravel ignoriert die doppelten Pares. Zum Beispiel habe ich ein Attribut namens "Netzwerk", das 3 Werte hat: 2G, 3G, 4G. Ein Handy unterstützt 3G und 4G-Netzwerk. Ich möchte 3G und 4G Wert in der Datenbank synchronisieren. Laravel ignoriert einen von ihnen.Wie werden mehrere Werte desselben Attributs in Laravel synchronisiert?
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
Ich möchte den Artikel speichern Attribute in „ProductAttributes“ Tabelle so ähnlich. Aber Laravel ignoriere einen von ihnen.
ich die Daten wie das speichere:
$product = Product::create([
'name' => 'Test Mobile'
]);
$product->attributes()->sync([
1 => ['AttributeValue' => '3G'],
1 => ['AttributeValue' => '4G']
]);
Anregungen, Ideen?
Ihr Array verfügt über doppelte Schlüssel. – Neat
In der ProductAttributes-Tabelle sollten Sie das AttributeValues.ID-Feld anstelle der AttributeID haben. Auf diese Weise wird die Zuordnung einzigartig sein. – Shadow
@Shadow Großer Punkt. Können Sie mir bitte sagen, wie ich über das Produktmodell auf die Attributtabelle zugreifen kann? –