# Wie greife ich ab 5.2.2 mit ext.js auf eigene Attribute zu?

**URL:** <https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457>\
**Category:** Programmierung\
**Created:** [22. Juli 2016 um 10:59 UTC](https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457 "2016-07-22T10:59:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hendrik](https://avatars.discourse-cdn.com/v4/letter/h/839c29/32.png) [@Hendrik](https://forum.shopware.com/u/Hendrik)\
**Post date:** [22. Juli 2016 um 10:59 UTC](https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457/1 "2016-07-22T10:59:17Z")

</div>

Hallo zusammen,

wir hatten für Shopware 5.1 ein Plugin entwickelt, dass die Methode getAttributes() verwendete, um auf von uns selbst definierte Attribute zuzugreifen. Wir benutzen ein Object der Klasse Shopware.apps.Order.model.Position. Nach dem Update auf 5.2.2 gibt es die Methode getAttributes() dort nicht mehr. Wie können wir weiterhin auf unsere Attribute zugreifen?

(Offenbar ist in Shopware.apps.Order.model.Position in der Version 5.2.2 folgendes entfallen:)

&nbsp;

```
associations: [{ type:'hasMany', model:'Shopware.apps.Order.model.PositionAttribute', name:'getAttributes', associationKey:'attribute' }]

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![fulltimeSW](https://avatars.discourse-cdn.com/v4/letter/f/7cd45c/32.png) [@fulltimeSW](https://forum.shopware.com/u/fulltimeSW)\
**Post date:** [29. Juli 2016 um 11:45 UTC](https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457/2 "2016-07-29T11:45:34Z")

</div>

Hallo,

die Antwort würde mich auch sehr Interessieren. Die Tabelle dafür existiert auf jedenfall noch.

&nbsp;@shopware‍ [@Shopware Developer]([http://forum.shopware.com/profile/18563/Shopware](http://forum.shopware.com/profile/18563/Shopware) Developer „Shopware Developer“)‍

---

<div class="post-metadata">

**Author:** ![d.coder](https://avatars.discourse-cdn.com/v4/letter/d/ed8c4c/32.png) [@d.coder](https://forum.shopware.com/u/d.coder)\
**Post date:** [29. Juli 2016 um 12:06 UTC](https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457/3 "2016-07-29T12:06:27Z")

</div>

Attribute sollen seither ausschließlich über einen eigenend CRUD service fetched bzw persistiert werden:  
[Attribute system](https://developers.shopware.com/developers-guide/attribute-system/)

Bin davon nach wie vor wenig begeistert. Wenn man nicht gerade nur ein neues Feld anlegen will, um dieses dann ausschließlich aus dem Shopware Backend heraus zu pflegen, steht man vor wesentlich mehr Hürden als zuvor.&nbsp;Generiert auch deutlich mehr Boilerplate-Code, ist im Kontext auch inkonsequent nur für diese&nbsp;Entitäten so vorzugehen und verballhornt so ein wenig die Prinzipien von Doctrine ORM.

---

<div class="post-metadata">

**Author:** ![spdenis](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@spdenis](https://forum.shopware.com/u/spdenis)\
**Post date:** [31. Juli 2016 um 13:04 UTC](https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457/4 "2016-07-31T13:04:21Z")

</div>

Hallo Zusammen!

Ich stehe auch grade vor dem Problem, dass ich an die von mir erstellten Attributes nicht dran komme. Ich erstelle diese in der Install-Methode des Plugins.

```
public function install(InstallContext $context)
{
        /**
         * @var $service \Shopware\Bundle\AttributeBundle\Service\CrudService
         */
        $service = $this->container->get('shopware_attribute.crud_service');
        
        // create article attributes for base fieldset
        $service->update('s_articles_attributes', 'start_date', 'date', [
            'label' => 'Begin',
            'displayInBackend' => false,
            'custom' => false,
        ]);
        
        parent::install($context);
}

```

Das klappt soweit super. Jetz möchte ich dieses Attribute für eine Abfrage benutzen. Ich habe einen Query Builder erstellt:

```
public function getArticleListByTimePeriodQueryBuilder($fromDate, $toDate)
{
        $builder = Shopware()->Models()->createQueryBuilder();
        $builder->select(array('article', 'mainDetail', 'attribute'));
        $builder->from('Shopware\Models\Article\Article', 'article')
            ->leftJoin('article.mainDetail', 'mainDetail')
            ->leftJoin('mainDetail.attribute', 'attribute')
            ->where('attribute.start_date BETWEEN :from AND :to')
            ->setParameters(array(
                'from' => $fromDate,
                'to' => $toDate,
            ));
        
        return $builder;
}

```

Wenn ich nun diese Methode aufrufe bekomme ich den folgenden Fehler:

**[Semantical Error] line 0, col 181 near ‘start\_date’: Error: Class Shopware\Models\Attribute\Article has no field or association named start\_date in vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php on line 63**

Wie gehe ich nun da vor?

---

<div class="post-metadata">

**Author:** ![Netzhirsch](https://avatars.discourse-cdn.com/v4/letter/n/3d9bf3/32.png) [@Netzhirsch](https://forum.shopware.com/u/Netzhirsch)\
**Post date:** [7. November 2017 um 07:53 UTC](https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457/5 "2017-11-07T07:53:38Z")

</div>

Ich muss das Thema nochmal aufgreifen, ich habe nämlich ein ähnliches Problem: Unser Plugin legt ebenfalls Freitextfelder an - dies führt jedoch dazu, dass das SwagImportExport-Plugin beim Export von Produkten einen Fehler wirft: [Semantical Error] line 0, col 2783 near ‚nnwebcustomtab7‘: Error: Class Shopware\Models\Attribute\Article has no field or association named nnwebcustomtab7

Hat hier viellecht jemand eine Idee?

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [7. November 2017 um 17:14 UTC](https://forum.shopware.com/t/wie-greife-ich-ab-5-2-2-mit-ext-js-auf-eigene-attribute-zu/38457/6 "2017-11-07T17:14:16Z")

</div>

Hallo,

das klingt nach einem Cache - Problem. Ich würde in deinem Fall einmal empfehlen, das Artikel - Model über die Freitextfeld-Verwaltung einfach mal neu generieren zu lassen.

Sollte es danach funktionieren, würde ich nach dem Erstellen der Freitextfelder beim Plugin folgendes noch ergänzen:

```
$metaDataCache = Shopware()->Models()->getConfiguration()->getMetadataCacheImpl();
$metaDataCache->deleteAll();

Shopware()->Models()->generateAttributeModels(
    array('s_articles_attributes')
);

```

Beste Grüße

Sebastian
