Backend: Detail-Ansicht bei OneToMany Assoziation (Tutorial)

Hallo zusammen,

ich habe das Backend-Tutorial durchgearbeitet (Backend Components - Associations) und stoße bei der OneToMany-Assoziation auf ein Problem.

Leider ist im Tutorial nicht erklärt, wie man die Detail-Ansicht der Variants implementiert. Auch der Beispiel-Code hat diese Implementation nicht.

Hier: https://forum.shopware.com/discussion/39013/onetomany-assoziation-detail-ansicht wurde schon einmal ein Lösungsansatz präsentiert, leider funktioniert der nicht, weder bei mir noch wenn ich ihn in den Tutorial-Source-Code einarbeite. Das Detail-Fenster öffnet sich, beim Speichern kommt jedoch der Fehler “Cannot read property ‘indexOf’ of undefined”. Hier: https://forum.shopware.com/discussion/32784/detailansicht-mit-listing-onetomany hatte mal jemand von einem gleichen Problem bei der Nutzung von OneToMany geschrieben.

Hat jemand einen funktionierenden Code-Schnipsel oder kann mir erklären, warum der Fehler auftritt? Gibt es irgendwo ein funktionierendes Beispiel des Backend-Tutorials mit den Variants?

Viele Grüße
Malte

Hat hier nie jemand das Tutorial zuende durchgearbeitet?

Weiß hier niemand Bescheid? Es gibt kein Beispiel im Shopware-Standard, wo man sich das anschauen könnte (extend: ‘Shopware.store.Association’). Kann doch nicht sein, dass ein Tutorial online gestellt wird und der letzte, entscheidende Schritt wird weggelassen…

Hab’s jetzt übers Row-Editing gemacht… Löschen funktioniert zwar noch nicht, aber das bekomme ich auch noch irgendwie hin.

Hi,

gibt es hierzu evtl. Lösungsvorschläge? Die Detail Ansicht wird bei mir auch angezeigt, aber speichern und reload des listings funktionieren leider nicht.

Gruß

Danny

Ich hatte das mal so gelöst, indem ich für die OneToMany nen eigenen Store angelegt hatte und dort dann den Proxy manuell angegeben hab:

 

Ext.define('Shopware.apps. ****.store.****', {
    extend: 'Shopware.store.Listing',
    configure: function() {
        return {
            controller: ' ****'
        };
    },
    model: 'Shopware.apps. *****.model.****',
    proxy: {
        type: 'ajax',
        url: '{url controller=" ****" action="getFoo"}'
    }
});

Im Backend-Controller dann die entsprechende getFooAction implementiert

Zu guter letzt noch auf dem grid.Panel den Store gesetzt

 

    initComponent: function() {
        var me = this;
        me.store = Ext.create('Shopware.apps. *****.store.****');
        me.callParent(arguments);
    }

 

Hi langnickel,

besten dank für Deinen Beitrag. Ich hatte bereits einen eigenen store angelegt. Allerdings habe ich durch Dein codesnippet gesehen, dass mein store von der falschen Klasse extended wurde. Zudem hatte ich total übersehen, dass in meinem model kein controller angegeben war.

Hab ich schonmal geschrieben wie nervig extjs ist wenn man es nicht drauf hat? :wink:

Danny

 

Jupp, ExtJS ist so ziemlich das, was mir am wenigsten Spaß macht bei Shopware, selbst nach einigen Büchern, vielen Tutorials, extrem dürftiger, veralteter bzw. lückenhafter Dokumentation und wühlen in den Standard-Componenten und fremden Plugins etc. pp. ist mir das ganze System immernoch abartig Fremd und extrem unflüssig in der Umsetzung und ich komm mir absolut unproduktiv vor.

Oh ja! Seh ich absolut genauso! :smiley:

Noch kurz zum Thema: Ich habe das Shopware Tutorial zur OneToMany Association soweit mit funktionierendem Detail erweitert.
Verstehe bis heute nicht warum Shopware das ganze nicht im Tutorial soweit mit eingebaut hat, denn so Trivial finde ich das ganze nicht!

Danny