# ExtJS form, model array

**URL:** https://forum.shopware.com/t/extjs-form-model-array/27157
**Category:** Shopware 3.5
**Tags:** programming
**Created:** [12. Mai 2015 um 10:40 UTC](https://forum.shopware.com/t/extjs-form-model-array/27157 "2015-05-12T10:40:32Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![gbmedia](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/gbmedia/32/8606_2.png) [@gbmedia](https://forum.shopware.com/u/gbmedia)
#### Post date: [12. Mai 2015 um 10:40 UTC](https://forum.shopware.com/t/extjs-form-model-array/27157/1 "2015-05-12T10:40:32Z")

</div>

hallo zusammen, ich binde eingabefelder in die bearbeitung der artikel stammdaten ein. das funktioniert ohne probleme. derzeit übergebe ich einzeln meine werte z.b: model ` //{block name="backend/article/model/article/fields" append} { name: 'value01', type: 'string' } { name: 'value02', type: 'string' } { name: 'value03', type: 'string' } ... //{/block} ` view ` getFields: function() { var me = this; return [{ name: 'value01', fieldLabel: 'value01', },{ name: 'value02', fieldLabel: 'value02', },{ name: 'value03', fieldLabel: 'value03', }, ...]; }, ` das ist meiner meinung nach nicht optimal. ich bin leider nich auf den trichter gekommen, wie das SWAG macht. ich würde gerne sowas in der art machen: model ` //{block name="backend/article/model/article/fields" append} { name: 'myParam', type: 'array' } //{/block} ` view ` getFields: function() { var me = this; return [{ name: 'myParam[value01]', fieldLabel: 'value01', },{ name: 'myParam[value02]', fieldLabel: 'value02', },{ name: 'myParam[value03]', fieldLabel: 'value03', }, ...]; }, ` kann mir da jemand ein tipp geben, wie ich meine werte gebündelt übergeben kann, danke.

---

<div class="post-metadata">

### Author: ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)
#### Post date: [12. Mai 2015 um 20:16 UTC](https://forum.shopware.com/t/extjs-form-model-array/27157/2 "2015-05-12T20:16:01Z")

</div>

Hi, sowas wird in ExtJS als sog. “Assoziation” abgebildet. Wenn du dir vorstellst, dass ein Model ja quasi ein (JSON)-Objekt beschreibt wie dieses hier: `{ "name": "hase", "price": "33.12" }` dann beschreibt eine Assoziation folgenden Fall: `{ "name": "hase", "price": "33.12", "customers": [{ "name": "gerd", "city": "Lathen" }, { "name": "jan", "city": "Meppen" },] }` Eine Assoziation beschreibt, dass das übergeordnete Model einen associationkey hat (hier: “customers”) und dass die darin enthaltenen Objekte wiederum von einem anderen Model beschrieben werden. Das könnte dann so aussehen (aus dem Kopf, Abweichung möglich): ` Ext.define('Shopware.apps.Irgendwas.models.ModelName', { extends: 'Shopware.data.Model', fields: [{ name: "name", type: "string"}, { name: "price", type: "float"},], associations: [{ name: "getCustomers", associationKey: "customers", model:"Shopware.apps.Customer.model.Customer" }] }); ` So werden also letztlich verschachtelte Datenstrukturen abgebildet. Die Assoziationsfelder sind SW nicht so einfach erweiterbar, wenn dir die Attribute nicht reichen, kann man sich ja auch einfach einen eigenen Store schreiben, den man lädt - so bekommst du auch eigene, komplexere Daten in bestehende Module. Wenn du dafür bspw. die Artikel-ID des aktuell angezeigten Artikels benötigt, kannst du das über sog. “extraParams” auf dem Store machen, da haben wir im Core einige Beispiele. Besten Gruß, Daniel

---

<div class="post-metadata">

### Author: ![gbmedia](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/gbmedia/32/8606_2.png) [@gbmedia](https://forum.shopware.com/u/gbmedia)
#### Post date: [13. Mai 2015 um 16:31 UTC](https://forum.shopware.com/t/extjs-form-model-array/27157/3 "2015-05-13T16:31:09Z")

</div>

hallo daniel, danke für die ausführliche beschreibung. ich glaub, dass ich erstmal einige lokale tests machen muss, um mir im klaren zu sein wie genau die übergaben ablaufen. damit ich dann in den richtigen blöcken meine werte beschreibe und erhalte. kurzer test war mal an `//{block name="backend/article/model/detail/fields"}{/block}` die beschreibung dran zu hängen damit ich dann mit `mainDetail[value01]` die werte erhalte. hat natürlich nicht geklappt ☹
