Hallo,
ein Artikel (articleID bekannt) soll einer Shop-Kateogorie hinzugefügt werden (categoryID bekannt). Gibt es dafür eine simple Funktion - sowas wie “addCategories”?
Hallo,
ein Artikel (articleID bekannt) soll einer Shop-Kateogorie hinzugefügt werden (categoryID bekannt). Gibt es dafür eine simple Funktion - sowas wie “addCategories”?
Hallo,
kommt darauf an, was du machen willst. Dir stehen zwei Möglichkeiten zur Verfügung: API und Doctrine.
Die Doctrine Variante (in Deinem Plugin):
$em = $this->container->get('models');
$articleRepo = $em->getRepository(Shopware\Models\Article\Article::class);
$article = $articleRepo->findOneBy(array('id' => 4711));
// die folgende Anweisung ist nötig, wenn Du selektierte Objekte wieder speichern willst (siehe Doctrine Doku):
$article->merge();
$categoryRepo = $em->getRepository(Shopware\Models\Category\Category::class);
$category = $categoryRepo->findOneBy(array('id' => 4711));
// auch hier muss gemergt werden, weil Du etwas an der Verbindungstabelle ändern willst:
$category->merge();
// die neue Kategorie an den Artikel anfügen:
$article->addCategory($category);
$em->persist($category);
$em->persist($article);
$em->flush();
Ungetestet, sollte so aber laufen. Ersetze einfach 4711 durch jeweils Deine bekannten IDs. n:m Beziehungen haben immer eine ArrayCollection, bei der es auch meistens eine add Methode gibt.
Für die Methode API bitte am besten die Doku dazu durchlesen: REST API - Examples using the article resource
MFG
derwunner
Falls du es über Doctrine machst müsstest du sehr wahrscheinlich den Kategorie-Baum neuaufbauen, da sonst die Kategorie Verknüpfungen nicht da sind.