Wie verwendet man die Eigenschaft ‘Label’ für das Dropdown-Menü im Shopware 6-Admin?

Wie verwendet man die Eigenschaft ‘Label’ für das Dropdown-Menü im Shopware 6-Admin?

In Shopware 6 haben wir diese coole Funktion der Anzeige von Labels mit Datenbankentitätsfeldnamen in der Backend-Verwaltung. Wenn die Entität kein Namensfeld hat, wird das Label in der Schnittstelle für die Plugin-Konfiguration und die benutzerdefinierten Felder nicht angezeigt.

Lassen Sie uns das an einem Beispiel überprüfen

Hier fügen wir eine Anrede-Entität als Single Select in der Plugin-Konfiguration hinzu

/**
 * <?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/master/src/Core/System/SystemConfig/Schema/config.xsd">
   <card>
       <title>Default salutation</title>
       <title lang="de-DE">Standardanrede</title>
       <component name="sw-entity-single-select">
           <name>hatslogicDefaultSalutation</name>
           <entity>salutation</entity>
           <label>Choose default salutation.</label>
       </component>
   </card>
</config>
 */

Bei der obigen Konfiguration werden die Beschriftungen für die Anrede nicht angezeigt. Es wird das ausgewählte Feld angezeigt, aber die Optionsbeschriftungen sind leer.

Abb.: Plugin-Konfiguration

Wir können dieses Problem lösen, indem wir die “Label-Eigenschaft” verwenden, die in Shopware 6 verfügbar ist. Sie können den Feldnamen innerhalb der “Label-Eigenschaft” verwenden. Hier ist displayName ein Feldname in der Datenbanktabelle.

/**
 * <?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/master/src/Core/System/SystemConfig/Schema/config.xsd">
   <card>
       <title>Default salutation</title>
       <title lang="de-DE">Standardanrede</title>
       <component name="sw-entity-single-select">
           <name>hatslogicDefaultSalutation</name>
           <entity>salutation</entity>
           <label>Choose default salutation.</label>
           <labelProperty>displayName</labelProperty>
       </component>
   </card>
</config>

 */

 

 

Mit der obigen Konfiguration wird das Etikett abgerufen und in der Auswahlbox angezeigt.

 

Abb.: Plugin-Konfiguration mit Beschriftungen

Das folgende Beispiel zeigt, wie man die “Label-Eigenschaft” für benutzerdefinierte Felder verwendet.

/**
 *  'customFields' => [
                   [
                       'id' => Uuid::randomHex(),
                          'name' => 'custom_field_name',
                       'type' => 'select',
                       'config' => [
                           'label' => [
                               'en-GB' => 'Label English',
                               'de-DE' => 'Label German'
                           ],
                           'componentName' => 'sw-entity-multi-id-select',
                           'customFieldType' => 'select',
                           'customFieldPosition' => 1,
                           'entity' => 'customer',
                           'labelProperty' => ['firstName', 'lastName']
                       ],
                   ],
               ],
 */

 

Leave a Reply

Your email address will not be published. Required fields are marked *