# Controller - ein einfaches Rechenbeispiel

**URL:** https://forum.shopware.com/t/controller-ein-einfaches-rechenbeispiel/47875
**Category:** Shopware Academy
**Tags:** shopware-das-handbuc
**Created:** [28. August 2017 um 09:57 UTC](https://forum.shopware.com/t/controller-ein-einfaches-rechenbeispiel/47875 "2017-08-28T09:57:18Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![Patrick\_Stahl](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/patrick_stahl/32/7679_2.png) [@Patrick\_Stahl](https://forum.shopware.com/u/Patrick_Stahl)
#### Post date: [29. August 2017 um 08:56 UTC](https://forum.shopware.com/t/controller-ein-einfaches-rechenbeispiel/47875/6 "2017-08-29T08:56:49Z")

</div>

Moin @hoppler‍,

du hast da ein paar Sachen durcheinander geworfen. 🙂

1. Dein Controller sollte hier liegen:&nbsp;\Mein\_Plugin\Controller **s** \MeinController.php&nbsp; **oder** &nbsp;\Mein\_Plugin\Controller **s** \<u\> **F** rontend  
Warum das? Ist einfach eine Konvention - musst du jetzt aber nicht zwingend beachten und ist für die Funktionalität deiner Anwendung erstmal nicht wichtig.

2. Deine Template Dateien sollten **alle** &nbsp;hier liegen:&nbsp;\Mein\_Plugin\Views\frontend\mein\_controller\   
Warum?  
Shopware Frontend Controller besitzen eine Art Template Autoloading - das heißt, dass eine Controller-Action eines Frontend Controllers immer auch von allein nach einem Template sucht.  
Die Suche nach dem passenden Template findet unter folgenden Gesichtspunkten statt:

- Es werden alle Template-Verzeichnisse in Anbetracht gezogen (Deswegen fügst du in der init-Methode auch per „addTemplateDir“ deinen eigenen _Views_ Ordner hinzu)
- Er sucht innerhalb der Template-Verzeichnisse nach dem richtigen Module, in diesem Fall nach einem Ordner namens&nbsp; **frontend/** , weil du einen Frontend-Controller hast. Wäre es ein Backend Controller, würde er stattdessen nach einem Ordner „backend/“ suchen.
- Anschließend erwartet er einen Ordner, der so benannt ist wie dein Controller, bloß in im sogenannten [SnakeCase](https://en.wikipedia.org/wiki/Snake_case). Das bedeutet, dass aus deinem Controller Namen „MeinController“ anschließend „mein\_controller“ wird. Er sucht also nach einem Ordner&nbsp; **mein\_controller/**.
- Zu guter Letzt sucht er nach einer Template&nbsp;Datei,&nbsp;die nach deiner Action benannt ist. In deinem Fall eine _addAction._&nbsp;Er lässt das „Action“ weg und sucht somit nach einer&nbsp; **add.tpl**

Zusammenfassend: Die Templates&nbsp;für deine indexAction / addAction müssen hier liegen: \MeinPlugin\Views\frontend\mein\_controller\ und dort dann jeweils&nbsp; **index.tpl** &nbsp;und&nbsp; **add.tpl.**

Soweit erstmal klar? 🙂

Da du dich nun auf das Template Autoloading stützt, kannst du deine indexAction auch löschen.  
Warum das jetzt? Alles, was deine IndexAction bislang macht, ist ein Template **manuell** &nbsp;zu laden. Brauchst du jetzt ja nicht mehr, wenn du das Autoloading für die Templates nutzt.&nbsp; ![Thumb-Up](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/thumb-up.png "Thumb-Up")  
Ist das verständlich?

Dann dürfte deine addAction auch vernünftig funktionieren und ein vernünftiges Template anzeigen.  
&nbsp;

> Immer wieder werde ich auf: /Mein\_Shop/Meincontroller/add weitergeleitet wo eine leere Seite ist.

Bis auf die leere Seite, die mit o.g. Weg auch nicht mehr weiß sein dürfte, ist die Weiterleitung als Solches ja auch erstmal korrekt. 🙂

Ich hoffe damit kommst du erstmal weiter.

Gruß,  
Patrck&nbsp; ![Shopware](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "Shopware")

---

_[View the full topic](https://forum.shopware.com/t/controller-ein-einfaches-rechenbeispiel/47875)._
