Neu hinzugefügtes Element wird nicht übermittelt

Hallo,

ich habe ein Plugin geschrieben, über das ich Einträge in der Datenbank speichern kann und im Shop ausgebe. Jetzt wollte ich das ganze erweitern und eine SaleChannel-Zuordnung einbauen.

Ich habe sowohl die Entity, Definition Klasse und Template erweitert.

Enitiy.php
 

...

    /**
     * @var string
     */
    protected $salesChannelId;

    /**
     * @var SalesChannelEntity|null
     */
    protected $salesChannel;

...


    /**
     * @return string
     */
    public function getSalesChannelId(): string
    {
        return $this->salesChannelId;
    }

    /**
     * @param string $salesChannelId
     */
    public function setSalesChannelId(string $salesChannelId): void
    {
        $this->salesChannelId = $salesChannelId;
    }

    /**
     * @return SalesChannelEntity|null
     */
    public function getSalesChannel(): ?SalesChannelEntity
    {
        return $this->salesChannel;
    }

    /**
     * @param SalesChannelEntity|null $salesChannel
     */
    public function setSalesChannel(?SalesChannelEntity $salesChannel): void
    {
        $this->salesChannel = $salesChannel;
    }

Definition.php

    /**
     * return fiels collection
     *
     * @return FieldCollection
     */
    protected function defineFields(): FieldCollection
    {
        return new FieldCollection([
            (new IdField('id', 'id'))->addFlags(new PrimaryKey(), new Required()),
            (new FkField('sales_channel_id', 'salesChannelId', SalesChannelDefinition::class))->addFlags(new Required()),
            (new StringField('name', 'name'))->addFlags(new Required()),
            new BoolField('active', 'active'),
             ...

            (new ManyToOneAssociationField('salesChannelId', 'sales_channel_id', SalesChannelDefinition::class, 'id', false)) // Warum andere Parameterreihenfolge als bei OneToOne?
        ]);
    }

Das Template, dass das Formular anzeigt habe ich auch entsprechend erweitert.

                    ...

Der Saleschannel-Switcher wird auch angezeigt und ich kann im Dropdown einen auswählen und die anderen bereits vorhandenen Felder auch entsprechend befüllen. Wenn ich dann aber speichere, wird im POST Request überhaupt kein salesChannelId Eintrag übertragen. Also auch nichts leeren, dieser Parameter fehlt einfach komplett. Entsprechend gibts einen 500 Fehler, weil der SQL Insert nicht durchgeführt werden kann, da ich sales_channel_id Required gesetzt habe.

bin/build-administration.sh und bin/console cache:clear wurde ausgeführt.

Wie bekomme ich die salesChannelId zum POST-Request hinzugefügt?

In vendor/shopware/administration/Resources/app/administration/src/module/sw-customer/component/sw-customer-base-form/sw-customer-base-form.html.twig habe ich jetzt eine andere Methode gefunden, wie ein Saleschannel Dropdown eingebunden wurde. 

Ich habe das kleine Snippet auch in der index.js hinzugefügt, dass auch beim Kudnenformular existiert. 

onSalesChannelChange(salesChannelId) {
   this.$emit('sales-channel-change', salesChannelId);
}

Hab das mal bei mir eingesetzt. Das Feld wird angezeigt und bei Klick kommt auch das Dropdown. Allerdings funktioniert bei der Variante nicht die Auswahl selber. Wähle ich einen Saleschannel aus, wird dieser nicht gesetzt. Es gibt auch keinen JS-Fehler.

Ich gehe mal davon aus, dass der Event “sales-channel-change” noch irgendwo genauer definiert werden muss. Ich kann aber auch im SW Code an keiner Stelle finden, was und wie das getan wird.

Wäre es Shopware nicht mal möglich solche elementaren Kernkomponenten vernünftig in Tutorials zu erklären?

Durch die Angabe von 

 v-model="record.salesChannelId"

funktioniert jetzt die Auswahl. Aber es führt zum gleichen alten Problem, dass beim Speichern einfach dieser Parameter überhaupt nicht mit übergeben wird.

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍ könntest du evtl. einen Tipp geben, was fehlt oder falsch sein könnte?

Ich habe das gleiche Problem, siehe hier:
https://forum.shopware.com/discussion/68877/neu-hinzugefuegtes-element-wird-nicht-uebermittelt

Aber leider noch keine Antwort.

Hier scheint es auch einen ähnlichen Thread zu geben:
https://forum.shopware.com/discussion/70331/leben-am-limit-productextension-onetomany-manytoone-association?

Auch ohne (öffentlich einsehbares) Ergebnis