# Wie erzeugt man eine Category?

**URL:** <https://forum.shopware.com/t/wie-erzeugt-man-eine-category/34808>\
**Category:** Programmierung\
**Created:** [25. Februar 2016 um 14:43 UTC](https://forum.shopware.com/t/wie-erzeugt-man-eine-category/34808 "2016-02-25T14:43:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lars3m5](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Lars3m5](https://forum.shopware.com/u/Lars3m5)\
**Post date:** [25. Februar 2016 um 14:43 UTC](https://forum.shopware.com/t/wie-erzeugt-man-eine-category/34808/1 "2016-02-25T14:43:25Z")

</div>

Hi,

die Frage klingt simple, aber trotzdem hab ich bisher keine vernünftige Antwort gefunden.

Es geht darum eine Category-Entity in die DB zu bekommen.

Hier mal der Code:

```
 $category = new \Shopware\Models\Category\Category(); $category-\>setPrimaryIdentifier(123); $category-\>setName("name"); $category-\>setActive(true); $category-\>setBlog(true); $category-\>internalSetPath("path"); $category-\>setHideFilter(true); $category-\>setShowFilterGroups(true); $category-\>setHideTop(true); $category-\>setNoViewSelect(true); $category-\>setPosition(0); 

 Shopware()-\>Models()-\>persist($category);

```

&nbsp;

Das ganze in der install-Methode der Bootstrap. Also bei der PlugIn Installation.

Hab dann mal per native SQL&nbsp;eine erstellt. Geht, sofern man das Left und Right Attribut setzt. Aber wie geht das per PHP?

&nbsp;

Danke schon mal für die Antworten.

BTW: Die&nbsp;Plug-In Installation&nbsp;geht nicht, es kommt aber keine Fehlermeldung. 😕

---

<div class="post-metadata">

**Author:** ![netzperfekt](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/netzperfekt/32/7765_2.png) [@netzperfekt](https://forum.shopware.com/u/netzperfekt)\
**Post date:** [25. Februar 2016 um 15:01 UTC](https://forum.shopware.com/t/wie-erzeugt-man-eine-category/34808/2 "2016-02-25T15:01:47Z")

</div>

Hallo,

vermutlich geht’s leichter und sicherer über die lokale REST-Api:

> $resCat =&nbsp;\Shopware\Components\Api\Manager::getResource(‚Category‘);
> 
> $aCat = array(  
> &nbsp; &nbsp;„parentId“ &nbsp;&nbsp; &nbsp;=\> $parentId,&nbsp;  
> &nbsp; &nbsp;„name“&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;=\> $catName,  
> &nbsp; &nbsp;„active“&nbsp;&nbsp; &nbsp;=\> $active  
> );  
> $newCat = $resCat-\>create($aCat);

In $aCat können natürlich noch weitere Attribute definiert werden.&nbsp;  
Weitere Infos zum lokalen Api-Zugriff:&nbsp;[http://community.shopware.com/Shopware-4-Lokaler-Zugriff-auf-die-API\_detail\_992.html](http://community.shopware.com/Shopware-4-Lokaler-Zugriff-auf-die-API%5C_detail%5C_992.html)

Viel Erfolg,  
Nils

&nbsp;

---

<div class="post-metadata">

**Author:** ![steinsoftware](https://avatars.discourse-cdn.com/v4/letter/s/b487fb/32.png) [@steinsoftware](https://forum.shopware.com/u/steinsoftware)\
**Post date:** [26. Februar 2016 um 08:26 UTC](https://forum.shopware.com/t/wie-erzeugt-man-eine-category/34808/3 "2016-02-26T08:26:27Z")

</div>

Hilft flushen?

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [27. Februar 2016 um 10:57 UTC](https://forum.shopware.com/t/wie-erzeugt-man-eine-category/34808/4 "2016-02-27T10:57:23Z")

</div>

Hi,

grundsätzlich ist es mit der Categorie-Ressource vermutlich einfacher, da hat @netzperfekt‍ schon Recht. Gerade gestern haben wir uns da aber noch ein Problem im Zusammenhang mit AutoFlush und der Plugin-Installation angesehen - wenn da also merkwürdige Fehlermeldungen aus dem ORM-Stack bei der install()-Methode&nbsp;kommen, würde es daran liegen.

In dem Initial-Beispiel oben fehlt mir (neben dem flush von @steinsoftware‍) auch noch die Parent-Kategorie-Zuordnung - irgendwo muss die Kategorie ja „eingehängt“ sein. Der „setPrimaryIdentifier“ ist zwar bei Kategorien möglich - aber eigentlich kannst du das weg lassen, die Datenbank sucht sich dann selbst eine passende ID :)).

Besten Gruß,

Daniel
