single_selection nicht Name sondern Description

Hallo,

bin gerade beim Versuch eines Plugins und hab nun eine kleine Frage:

$crudService = Shopware()->Container()->get('shopware_attribute.crud_service');
        $crudService->update(
            's_core_auth_attributes',
            'lbntz_order_state',
            'single_selection',
            [
                'label' => 'Order Status',
                'displayInBackend' => TRUE,
                'entity' => \Shopware\Models\Order\Status::class
            ]
        );
        Shopware()->Models()->regenerateAttributeProxies(['s_core_auth_attributes']);

Jetzt wird mir in dem Dropdown Feld vom Status immer der Name ausgeben, möchte allerdings die Description ausgeben.

Wie kann ich hier einen anderen Wert anzeigen lassen?

 

Lg Leibnitz

Du musst dir einen eigenen SwagAttribute.FieldHandler dafür schreiben:

https://developers.shopware.com/developers-guide/attribute-system/#define-own-single-and-multi-selection

Die Doku ist leider nicht so gut an der Stelle. Aber das Beispiel Plugin ist ganz gut:

https://developers.shopware.com/exampleplugins/SwagAttribute.zip

Wenn du das nicht für alle Status Felder haben willst, kannst du deinen Spaltennamen so ähnlich wie hier abfragen:

// first line magic?!?
Ext.define('Shopware.attribute.GhHasScmProcessAutomationErrorFieldHandler', {
    extend: 'Shopware.attribute.BooleanFieldHandler',

    supports: function(attribute) {
        var me = this;
        var supports = me.callParent(arguments);

        return (supports && attribute.get('tableName') == 's_order_attributes' && attribute.get('columnName') == 'gh_has_scm_process_automation_error');
    },

    create: function(field, attribute) {
        var me = this;
        field = me.callParent(arguments);

        field.readOnly = true;
        return field;
    }
});