Vue.js: Produkt OneToMany Assoziation mit CustomEntity

Hey, ist es rein technisch gesehen möglich die Seite Produkt bearbeiten mit einer Assoziation zu versehen und in einer sw-entity-multi-select anzuzeigen und editieren?

Muss ich die Assoziation via Subscriber einbauen oder geht es auch im Vue.js Component?

Was genau soll das multi-select anzeigen? Ich verstehe noch nicht so recht 

Welche Assoziation / wo kommt die her? Was willste denn genau machen.

Prinzipiell erweiterst du vorhandene entities über eine entity extension.

Also ich habe die Entity Extension:

class MyEntityProductExtension extends EntityExtension
{
    public function getDefinitionClass(): string
    {
        return ProductDefinition::class;
    }

    public function extendFields(FieldCollection $collection): void
    {
        $collection->add(
            new ManyToManyAssociationField('my_entities', MyEntityProductDefinition::class, ProductDefinition::class, 'product_id', 'my_entity_id')
        );
    }
}

Ich habe auch schon die Möglichkeit pro Entity alle assoziierten Produkte zu sammeln => Dazu muss ich aber in vue.js criteria.addAssociation(‚products‘) nutzen. Jetzt weiß ich nur nicht ob

  1. Die Entity Extension so Korrekt ist

  2. Wie ich für den Bereich Produkt bearbeiten die Assoziation zu meiner Custom Entity herstellen kann => criteria.addAssociation(‚my_entities‘) !?

  3. Die Ausgabe des sw-entity-multi-selects als twig Block extension ist hier nicht das Problem :slight_smile:

 

 

Aiaiai, ich hätte mal einfach einen Blick in das Bundle Example werfen sollen :wink:

const { Component } = Shopware;

Component.override('sw-product-detail', {
    computed: {
        productCriteria() {
            const criteria = this.$super('productCriteria');
            criteria.addAssociation('bundles');

            return criteria;
        },
    }

});

 

1 „Gefällt mir“