Hallo zusammen, ich versuche gerade anhand des Shopware Backend Komponenten - Assoziationen Turitorial. die Listenansicht zu erweitern. Leider komme ich nicht weiter. In der Liste, soll dabei zusätzlich zu den Daten im Produktmodell (Name, Preis…) noch das attr1 aus dem Attributmodell angezeigt werden. Hierzu habe ich model/product.js folgendermaßen erweitert: Ext.define('Shopware.apps.SwagProduct.model.Product', { extend: 'Shopware.data.Model', configure: function() { return { controller: 'SwagProduct', detail: 'Shopware.apps.SwagProduct.view.detail.Product' }; }, fields: [{ name : 'id', type: 'int', useNull: true }, { name : 'name', type: 'string' }, { name : 'taxId', type: 'int' }, //Der folgende Code habe ich ergänzt: { name : 'attribute', type: 'string'}, { name : 'attr1', type: 'string' }], associations: [{ relation: 'ManyToOne', field: 'taxId', type: 'hasMany', model: 'Shopware.apps.Base.model.Tax', name: 'getTax', associationKey: 'tax' }, //Hier wurde erweitert: { relation: 'OneToOne', type: 'hasOne', model: 'Shopware.apps.SwagProduct.model.Attribute', name: 'getAttribute', associationKey: 'attribute' },] });
P. S. Ich kann auch Danke sagen.
Bei folgendem getListQuery protected function getListQuery() { $builder = parent::getListQuery(); $builder-\>leftJoin('product.tax', 'tax') -\>innerJoin('product.attribute', 'attribute'); $builder-\>addSelect(array('tax', 'attribute')); return $builder; }
erhalte ich die folgende Ausgabe. Sprich es wird mir nur ein [Object object] zurückgegeben: Bei folgendem Code protected function getListQuery() { $builder = parent::getListQuery(); $builder-\>leftJoin('product.tax', 'tax') -\>innerJoin('product.attribute', 'attribute'); $builder-\>addSelect(array('tax', 'attribute', 'attribute.attr1')); return $builder; }
erhalte ich nur das attr1, und nicht mehr das eigentliche Product model. Hat jemand noch weitere Ideen zur Vorgehensweise?