Ich habe eine Entity store
, die eine ManyToMany Association zur Entity buch
hat und die hat wiederum eine ManyToOne Association zu language
. Viele Bücher, können in beliebig vielen Stores sein. Jedes Buch ist in einer bestimmten Sprache.
Jetzt möchte ich im Adminbereich, den Stores ihre Bücher zuweisen, das ist ja recht einfach und funktioniert auch:
Jetzt habe ich das Problem, wenn das Buch in beiden Sprachen gleich heißt, ich zwei mal den selben Namen ausgegeben bekomme und nicht unterscheiden kann, in welcher Sprache welches Buch ist. Dazu würde ich gerne in dem Result-Container den Namen + Spache ausgeben. Leider wird die Association in den Results nicht geladen, sondern nur die languageId
.
Die Komponente liegt hier: Resources/app/administration/src/app/component/form/select/entity/sw-entity-many-to-many-select/index.js
Auch wenn ich die Assiciation manuell hinzugüge, ist searchResult
trozdem noch ohne, auch this.entityCollection
ist leer:
import template from './my-plugin-store-books-select.html.twig';
const { Component } = Shopware;
const { Criteria } = Shopware.Data;
Component.extend('my-plugin-store-books-select', 'sw-entity-many-to-many-select', {
template,
methods: {
findAssignedEntities(ids, searchResult) {
const criteria = new Criteria();
criteria.setIds(ids);
criteria.addAssociation('language');
return this.repository.searchIds(criteria, this.entityCollection.context).then((assigned) => {
assigned.data.forEach((id) => {
if (!this.entityCollection.has(id)) {
this.entityCollection.add(searchResult.get(id));
}
});
console.log(searchResult);
console.log(this.entityCollection);
this.displaySearch(searchResult);
this.isLoading = false;
return searchResult;
});
},
}
});
Ich weiß nicht, an welche Stelle ich die Association hinzugügen muss, damit ich an die Sprache komme