Speicherung zusätzlicher Informationen in der Beziehungstabelle

Ich entwickle ein Plugin, das es Benutzern ermöglicht, mehrere Wunschlisten zu erstellen und Produkte hinzuzufügen. Es ist auch notwendig, die Anzahl der hinzugefügten gleichen Produkte zu speichern, um sie mit einem Klick in den Warenkorb zu verschieben. Jede solche Wunschliste wird als Projekt bezeichnet.

Ich habe ProjectEntity und ProjectDefinition für Projekte sowie ProjectProductDefinition und ProjectProductEntity für die Verbindung von Projekten mit Produkten erstellt. Im Allgemeinen funktioniert alles gut, Produkte werden gespeichert und aus Projekten entfernt, aber nicht ihre Anzahl.

Ich habe beschlossen, die Anzahl der Produkte in einem zusätzlichen Feld quantity der Tabelle swag_project_product zu speichern. Und jetzt, wenn ich einen Eintrag speichere, mache ich Folgendes:

        $this->projectRepository->update([
            [
                'id' => $projectId,
                'products' => [
                    [
                        'id' => $productId,
                        'quantity' => $quantity // quantity wird nicht gespeichert, aber der Rest schon
                    ]
                ]
            ]
        ], $context);

Das heißt, quantity wird nicht gespeichert.

Ich habe auch versucht, es auf andere Weise zu tun:

        $project = $this->projectRepository->search(new Criteria([$projectId]), $context)->first();
        $product = $this->productRepository->search(new Criteria([$productId]), $context)->first();

        $this->projectProductRepository->upsert([
            [
                'projectId' => $project->getUniqueIdentifier(),
                'productId' => '$productId,
                'quantity' => $quantity
            ]
        ], $context);

Aber dann bekomme ich den Fehler „Caught 1 constraint violation errors“.

Ich wäre dankbar, wenn mir jemand helfen könnte zu verstehen, wie ich die Anzahl der Produkte in der Beziehungstabelle richtig speichern und später aktualisieren kann.