# Eigene Attributes Tabelle erstellen

**URL:** <https://forum.shopware.com/t/eigene-attributes-tabelle-erstellen/35127>\
**Category:** Programmierung\
**Created:** [8. März 2016 um 16:28 UTC](https://forum.shopware.com/t/eigene-attributes-tabelle-erstellen/35127 "2016-03-08T16:28:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![camelmoto](https://avatars.discourse-cdn.com/v4/letter/c/eb8c5e/32.png) [@camelmoto](https://forum.shopware.com/u/camelmoto)\
**Post date:** [8. März 2016 um 16:28 UTC](https://forum.shopware.com/t/eigene-attributes-tabelle-erstellen/35127/1 "2016-03-08T16:28:41Z")

</div>

Hallo Community,

bin gerade dabei für die „[s\_article\_configurator\_options](http://demo.webcustoms.de/phpmyadmin/sql.php?db=webcustoms-it&token=5b69a7fbc251ed1747235e0548f288fb&goto=db_structure.php&table=s_article_configurator_options&pos=0)“ Tabelle eine Attributes Tabelle zu erstellen, da aktuell keine vorhanden ist. In diese Attributes Tabelle will ich zusätzliche Informationen, wie z.B. Option Icon, speichern. Die Tabelle heißt „webcu\_article\_configurator\_option\_attributes“ und verfügt über folgende Spalten:

- id int(11)
- optionId int(11)
- optionIcon varchar(255)

Ein&nbsp;Doctrine Model für diese Tabelle habe ich bereits erstellt und beim Installieren von dem Plugin wird die Tabelle erfolgreich in der DB angelegt.

Um jetzt das Feld „optionIcon“ im Backend darstellen und bearbeiten zu können muss die „getConfiguratorGroupsQueryBuilder“ Funktion erweitert werden, also mache ich einen After Hook:

```
public function afterGetConfiguratorGroupsQueryBuilder(\Enlight_Hook_HookArgs $arguments)
{
    // get original builder
    $builder = $arguments->getReturn();

    // add selection and join to original builder
    $builder->addSelect('options_attributes.optionIcon');
    $builder->leftJoin(
        'Shopware\CustomModels\WebcuTestPlugin\Configurator\Option',
        'options_attributes',
        \Doctrine\ORM\Query\Expr\Join::WITH,
        'options_attributes.optionId = options.id'
    );

    echo "";
    print_r($builder->getQuery()->getArrayResult());
    echo "";
    exit();
    
    $arguments->setReturn($builder);
}

```

&nbsp;

Am Ende Debugge ich das Ergebnis:

```
Array(
    [0] => Array(
        [0] => Array(
            [id] => 5
            [name] => Stocklänge
            [description] => 
            [position] => 1
            [options] => Array(
                [0] => Array(
                    [id] => 45
                    [groupId] => 5
                    [name] => 100 cm
                    [position] => 4
                )

                [1] => Array(
                    [id] => 6
                    [groupId] => 5
                    [name] => 110 cm
                    [position] => 6
                )

                [2] => Array(
                    [id] => 5
                    [groupId] => 5
                    [name] => 115 cm
                    [position] => 5
                )
            )
        )

        [optionIcon] => 
    )

```

Das Feld „optionIcon“ wurde&nbsp;erfolgreich hinzugefügt, aber an der falschen Stelle.

Wie kriege ich es so hin, dass das Feld „optionIcon“ bei jeder Option angelegt wird und nicht bei jeder Gruppe?

Gibt es vielleicht einen anderen Weg neue Felder hinzuzufügen ohne eine Attributes Tabelle?

&nbsp;

Besten Gruß,

Nikita

---

<div class="post-metadata">

**Author:** ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)\
**Post date:** [9. März 2016 um 07:30 UTC](https://forum.shopware.com/t/eigene-attributes-tabelle-erstellen/35127/2 "2016-03-09T07:30:36Z")

</div>

Hi Nikita,

an die richtige Stelle wirst du es so nicht bekommen, da das Option-Model ja keine Beziehung zu deiner Attributes-Tabelle hat.

Besser wäre es wohl, wenn du die Rückgabe der&nbsp;\Shopware\_Controllers\_Backend\_Article::loadStoresAction anpasst.  
Das sollte sich leicht&nbsp;mit einem PostDispatch-Event umsetzen lassen.

Gurß Heiner

---

<div class="post-metadata">

**Author:** ![camelmoto](https://avatars.discourse-cdn.com/v4/letter/c/eb8c5e/32.png) [@camelmoto](https://forum.shopware.com/u/camelmoto)\
**Post date:** [9. März 2016 um 07:52 UTC](https://forum.shopware.com/t/eigene-attributes-tabelle-erstellen/35127/3 "2016-03-09T07:52:25Z")

</div>

> [@Heiner Lohaus schrieb:](https://forum.shopware.com/profile/63/Heiner%20Lohaus "Heiner%20Lohaus")
> 
> Hi Nikita,
> 
> an die richtige Stelle wirst du es so nicht bekommen, da das Option-Model ja keine Beziehung zu deiner Attributes-Tabelle hat.
> 
> Besser wäre es wohl, wenn du die Rückgabe der&nbsp;\Shopware\_Controllers\_Backend\_Article::loadStoresAction anpasst.  
> Das sollte sich leicht&nbsp;mit einem PostDispatch-Event umsetzen lassen.
> 
> Gurß Heiner

&nbsp;

Hallo Heiner,

vielen Dank&nbsp;für schnelle Antwort. Habe schon befürchtet, dass es so nicht geht, schade&nbsp; ![Undecided](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/undecided.png "Undecided")  
Dann mache ich das mit dem PostDispatch-Event auf „loadStoresAction“ Funktion.

**Noch Mal vielen Dank.**

Besten Gruß,  
Nikita

&nbsp;
