Vue JS - 2 Repositorys in eine Tabelle laden

Guten Morgen zusammen,

ich versuche gerade einmal das customerRepository und customerAddressRepository in eine Tabelle in der Administration zu laden. Leider greift immer nur ein Repository, kann mir da jemand auf die sprünge helfen?

Mein Code sieht wie folgt aus:

list.js

_import_ template _from_ './swag-bundle-list.html.twig'; _const_ { Component } = Shopware; _const_ { Criteria } = Shopware.Data; Component.register('swag-bundle-list', { template, inject: ['repositoryFactory'], metaInfo() { _return_ { title: _this_.$createTitle() }; }, data() { _return_ { repository: _null_, customerRepository: _null_, customerAddressRepository: _null_, }; }, computed: { columns() { _return_ _this_.getMRDColumns(); } }, methods: { getMRDColumns() { _return_ [{ property: 'firstName', dataIndex: 'firstName', label: 'Vorname', primary: _true_, }, { property: 'lastName', dataIndex: 'lastName', label: 'Nachname' }, { property: 'lastLogin', dataIndex: 'lastLogin', label: 'Letzter Login' }, { property: 'phoneNumber', dataIndex: 'phoneNumber', label: 'Telefonummer' },]; } }, created() { _this_.repository = _this_.repositoryFactory.create('customer'); _this_.repository .search(_new_ Criteria(), Shopware.Context.api) .then((result) =\> { _this_.customerRepository = result; }); _this_.repository = _this_.repositoryFactory.create('customerAddressService'); _this_.repository .search(_new_ Criteria(), Shopware.Context.api) .then((result) =\> { _this_.customerAddressRepository = result; }); } }); 

 

list.html.twig

 {% _block_ swag\_bundle\_list %} <sw-page>class="swag-bundle-list"&gt;
        {% <em>block </em>swag_bundle_list_smart_bar_actions %}

        {% <em>endblock </em>%}

        <template>slot="content"&gt;
            {% <em>block </em>swag_bundle_list_content %}
                <sw-entity-listing>:items="customerRepository"
                        <em>:items</em>="customerAddressRepository"
                        <em>:repository</em>="repository"
                        <em>:showSelection</em>="false"
                        <em>:columns</em>="columns"&gt;
                </sw-entity-listing>
            {% <em>endblock </em>%}

        </template>
    </sw-page> {% _endblock_ %}

Live: Telefonnummer bleibt leider leer …

Lad doch nur die Addresses mit Assoziation zum Customer

1 „Gefällt mir“
_this_.repository .search((_new_ Criteria()).addAssociation('customer')

 , Shopware.Context.api) .then((result) =\> { _this_.customerAddressRepository = result; });

Danke für die schnelle Antwort :slight_smile:

Wie darf ich das verstehen, bin noch ned so lange dabei? :smiley:

Jetzt bekomme ich garkeine auflistung mehr?

 created() { _this_.repository .search((_new_ Criteria()).addAssociation('customer'), Shopware.Context.api) .then((result) =\> { _this_.customerAddressRepository = result; }); }

list.html.twig

 {% _block_ swag\_bundle\_list %} <sw-page>class="swag-bundle-list"&gt;
        {% <em>block </em>swag_bundle_list_smart_bar_actions %}

        {% <em>endblock </em>%}

        <template>slot="content"&gt;
            {% <em>block </em>swag_bundle_list_content %}
                <sw-entity-listing>:items="customerAddressRepository"
                        <em>:repository</em>="repository"
                        <em>:showSelection</em>="false"
                        <em>:columns</em>="columns"&gt;
                </sw-entity-listing>
            {% <em>endblock </em>%}

        </template>
    </sw-page> {% _endblock_ %}

Das ist ganz einfach. in der Criteria Variable kannst du Filter und Assoziationen hinzufügen. Wenn du eine Assoziation zum Customer einfügst, dann kannst du im Tempate den Wert mit {{ item.phoneNumber }} … {{ item.customer.email }} etc ausgeben. Datentabellen aus zwei Repos mischen geht nicht. Zumal auch this.repository nicht neu definiert werden darf.

Okey ich verstehe was du mir sagen willst aber kann es nicht umsetzten, hab gestern mit Vue JS angefangen … xd

Könntest du mir ein Beispiel an meinem Code zeigen, dann kann ich mir dass ansehen und verstehen was gemacht wird?

Das wäre mega nett :slight_smile:

addAssociation ist keine gültige Funktion oder Methode? :open_mouth:

 

Moin @Federico,
hast du deine Fragestellung gelöst? Ich stehe gerade vor der selben Frage. Ich möchte Bestellungen nach Kategorie und Kaufdatum filtern.
+Zeige mir alle Bestellungen, die „Büromöbel“ enthalten und zwischen xx.xx.xxxx & xx.xx.xxxx gekauft wurden