Ich habe vor kurzem mit Laravel4 arbeiten begonnen. Beim Aktualisieren von Pivot-Tabellendaten stehe ich vor einigen Problemen, im Fall von vielen zu vielen Relationen.Update Pivot-Tabelle im Fall von vielen zu vielen Relation Laravel4
Die Situation ist: Ich habe zwei Tabelle: Produkt, Product. Die Beziehung zwischen ihnen ist Viele zu viele. Meine Modelle
class Product extends Eloquent {
protected $table = 'products';
protected $primaryKey = 'prd_id';
public function tags() {
return $this->belongsToMany('Tag', 'prd_tags', 'prta_prd_id', 'prta_tag_id');
}
}
class Tag extends Eloquent {
protected $table = 'tags';
protected $primaryKey = 'tag_id';
public function products()
{
return $this->belongsToMany('Product', 'prd_tags', 'prta_prd_id', 'prta_tag_id');
}
}
sind zwar Daten an die Pivot-Tabelle prd_tags Einfügen, ich habe:
$product->tags()->attach($tag->tagID);
Aber jetzt möchte ich Daten in dieser Pivot-Tabelle aktualisieren, was ist der beste Weg, um Daten zu aktualisieren zum Pivot-Tisch. Sagen wir, ich möchte einige Tags löschen und neue Tags zu einem bestimmten Produkt hinzufügen.
Haben Sie die Informationen in die Dokumente? Hilft es überhaupt ... http://four.laravel.com/docs/eloquent#working-with-pivot-tables –
@PhillSparks: Ja, ich habe dieses Dokument durchgelesen. Es gibt eine Methode namens sync, um dies zu tun, die ein Array von IDs nehmen und einfügen bzw. löschen wird, aber was ist, wenn meine Pivot-Tabelle andere Attribute als die IDs beider Tabellen hat. Die Synchronisierungsmethode sollte ein Array von Objekten anstelle eines Arrays von ganzen Zahlen verwenden. – Sameer
Eloquent unterstützt ein einfaches Tabellendesign, bei dem Ihre Pivot-Tabellen über ID-Spalten verfügen, mit denen auf die Zeilen verwiesen wird. Eloquent wurde nicht für andere Datenbankdesigns entwickelt, da umfangreichere ORM-Lösungen verfügbar sind. –