Admin-Extension: Wie erstelle ich eine Datenbankabfrage anhand der KundenID in meiner vue.js Datei?

Hi Shopware Community,

ich möchte die Kundendetailseite im Administrationsbereich erweitern und anhand der KundenID Daten aus meiner Entität ausgeben.
Die KundenID befindet sich ja im Objekt “customer”, welches ich im Twig-Template mittels {{ customer }} ausgeben kann.

Frage 1: Wie kann ich in meiner vue.js Datei auf die KundenID zugreifen?

Desweiteren würde ich gerne eine Datenbank-Abfrage bauen, die mir Feld “x” ausgibt, wenn Feld “customerId” = KundenID ist
In PHP geht es ja über ->addFilter(new EqualsFilter(…)). Ist das in vue.js so ähnlich?

Frage 2: Wie sieht diese Abfrage aus? Hat jemand ein Beispiel?
Antwort -> siehe *EDIT* weiter unten

Mein Code:

import { Locale } from 'src/core/shopware';
import template from './extension/sw-customer-detail-base.html.twig';
import deDE from './snippet/de-DE.json';
import enGB from './snippet/en-GB.json';

const { Component } = Shopware;
const { Criteria } = Shopware.Data;

Component.override('sw-customer-detail-base', {
    template,

    inject: [
        'repositoryFactory'
    ],

    data() {
        return {
            repository: null,
            customFile: null
        };
    },

    created() {
        this.createdOwnComponent()
    },

    methods: {
        createdOwnComponent() {
            this.repository = this.repositoryFactory.create('my_entity');

            // Wie baue ich hier eine Abfrage, nach dem Feld customerId = this.customerId ?
            this.repository.search(new Criteria(), Shopware.Context.api).then((result) => {
                this.customFile = result;
            })
        }
    }

});

Locale.extend('de-DE', deDE);
Locale.extend('en-GB', enGB);

 

Liebe Grüße
Oliver
 

 

*EDIT*
Frage 2 hat sich erledigt.

createdOwnComponent() {
            const criteria = new Criteria();
            var customerId = null;
            criteria.addFilter(Criteria.equals('customerId', customerId));

            this.repository = this.repositoryFactory.create('my_entity');

            this.repository.search(criteria, Shopware.Context.api).then((result) => {
                this.customFile = result;
            })
        }

 

Zu Frage 1:

In der Override Funktion nach dem inject: , einfach 
 

props: {
        customer: {
            type: Object,
            required: true
        },

hinzufügen und dann über this.customer.id auf die ID zugreifen.
Siehe auch: /platform/src/Administration/Resources/app/administration/src/module/sw-customer/view/sw-customer-detail-base

Hoffe es hilft jemandem.