ich verzweifle jetzt bald mit der vermeintlich einfachen Aufgabe die Entity PromotionIndividualCode mit einer Association einer eigenen Entity zu erweitern und dann in der Listing-Tabelle der Gutschein-Codes im Admin auszugeben.
EntityExtension: (natürlich auch in der services.xml registriert)
class PromotionIndividualCodeExtension extends EntityExtension { public function extendFields(FieldCollection $collection): void { $collection-\>add( new OneToOneAssociationField( 'myCustomField', 'id', 'voucherCodeId', MyCustomDefinition::class, false ) ); } public function getDefinitionClass(): string { return PromotionIndividualCodeDefinition::class; } }
Die Spalte ist zwar dann im Listing vorhanden, aber ich komme ums verrecken nicht an die Daten der Extension. Es müssten doch mit der EntityExtension und der OneToOne Asscociation das Custom Field im Admin-JS fürs Listing verfügbar sein?
Wie sieht deine MyCustomDefinition aus? Führst du in der Migration ein updateInheritance durch (eventuell nötig)?
Meldet die Entwicklerkonsole im Browser Fehler bzw. scheitern gewisse Requests (zu sehen im Requests-Tab)?
Wenn du dir die MyCustomEntity direkt in der Datenbank ansiehst, werden die ForeignKeys korrekt gespeichert?
Generell könnte es bei der Klärung helfen, den JavaScript-Teil zunächst außenvor zu lassen und direkt Requests an die API zu senden (z.B. mittels Insomnia).
in der MyCustomDefinition habe ich das OneToOneAssociationField ebenfalls angelegt. In der Datenbank wird meine Tabelle angelegt und Daten auch gespeichert.
Die Entwicklerkonsole gibt keine Fehler aus. Ich sehe dort in dem JSON-String auch unter includes, dass die Entität vorhanden ist, aber eben ohne den benötigten Value. data ist immer leer.
Dies ist URL, die das Detailwindow der Gutscheincodes lädt: http://shopware:8000/api/v3/search/promotion-individual-code
Dort findet sich dann im Response unter includes > relationships auch myCustomEntity, aber mit data: null
Im Key “links” steht: http://shopware:8000/api/v3/promotion-individual-code/23ef0e3e50a44494b2feffc9370d57f7/extensions/myCustomEntity
Wenn ich das z.B. In Postman reinwerfe bekomme ich die gewünschten Daten geliefert. Hab nur keine Idee, wie ich die jetzts im Listing der Gutscheincodes im Admin rausbekomme.
Foreign-Keys etc. sind auch korrekt. Im Fronted bekomme ich die Daten auch korrekt ausgegeben, nur eben im Admin beim Listing der Gutscheincodes kriege ich die Daten aus der Asscociation nicht übermittelt.
Das Shopware 6: Entity extension hilft auch nicht weiter, ist auch aufs Frontend bezogen, allgemein und keine Association
Ok, tut mir leid, dann weiß ich nicht wirklich weiter. Es klingt ein bisschen so, als könnte Lazy-Loading das Problem sein. Auch wenn ich nicht sicher bin, ob Shopware das bei OneToOne-Relations überhaupt lazy macht (vgl.).