# Controller action wird nicht aufgerufen

**URL:** <https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757>\
**Category:** Programmierung\
**Created:** [27. November 2016 um 19:24 UTC](https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757 "2016-11-27T19:24:58Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![inkarnation](https://avatars.discourse-cdn.com/v4/letter/i/c57346/32.png) [@inkarnation](https://forum.shopware.com/u/inkarnation)\
**Post date:** [27. November 2016 um 19:24 UTC](https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757/1 "2016-11-27T19:24:58Z")

</div>

Ich habe ein Test Plugin geschrieben, welches einen Button auf die Warenkorb Seite einfügen soll.  
Der Controller liegt im Frontext \> [Plugin] \> Controllers \> Frontend \> MeinTest.php

Bootstrap.php

```
createMyEvents();
        return true;
    }

    /**
     * Creates and subscribe the events and hooks.
     */
    private function createMyEvents()
    {
        $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatchSecure_Frontend', 'onFrontendPostDispatch'
        );
        $this->subscribeEvent(
            'Enlight_Controller_Dispatcher_ControllerPath_Frontend_MeinTest', 'onGetControllerPathFrontend'
        );
    }

    public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
    {
        /** @var \Enlight_Controller_Action $controller */
        $controller = $args->get('subject');
        $view = $controller->View();

        $view->addTemplateDir(
            __DIR__. '/Views'
        );
    }

    /**
     * Returns the path to a frontend controller for an event.
     *
     * @return string
     */
    public function onGetControllerPathFrontend()
    {
        return __DIR__. '/Controllers/Frontend/MeinTest.php';
    }
}

```

MeinTest.php

Code für den Button:

```
    ButtonText

```

Was habe ich vergessen bzw falsch gemacht?

---

<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:** [28. November 2016 um 09:36 UTC](https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757/2 "2016-11-28T09:36:14Z")

</div>

Hallo @inkarnation‍,

Was genau ist denn der Fehler?  
Wird der “Button” nicht angezeigt?  
Lässt sich der Controller nicht aufrufen?  
Funktioniert die Weiterleitung nicht korrekt?

Gruß,  
Patrick ![Shopware](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "Shopware")

---

<div class="post-metadata">

**Author:** ![inkarnation](https://avatars.discourse-cdn.com/v4/letter/i/c57346/32.png) [@inkarnation](https://forum.shopware.com/u/inkarnation)\
**Post date:** [28. November 2016 um 10:40 UTC](https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757/3 "2016-11-28T10:40:01Z")

</div>

Hallo Patrick,

Entschuldige, in der Tat habe ich diese Info unterschlagen.

Der Button wird korrekt gerendert und angezeigt:

```
ButtonText

```

Das Problem ist, das er bei einem Klick auf /MeinTest weiterleitet (Das ist nach meinem Verständnis korrekt, nachdem /index äquivalent zu /MeinTest/ & /MeinTest/index ist). Leider antwortet der Server dabei mit einem HTTP 404 Error Code.

Ein scheint als ob der „Controller“ bzw. die action nicht gefunden wird? Erwarten würde ich, eine weiße Seite mit dem Inhalt von die();.

---

<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:** [28. November 2016 um 13:55 UTC](https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757/4 "2016-11-28T13:55:45Z")

</div>

Hallo @inkarnation‍,

schau’ doch einmal, ob die Methode **onGetControllerPathFrontend** in deiner **Bootstrap** auch wirklich geladen wird, wenn du den Link manuell aufrufst, also bspw.:  
[http://deinShop.de/DeinShop/MeinTest](http://deinShop.de/DeinShop/MeinTest)

Am Besten baust du da mal direkt das „die()“ rein. 🙂

Dann lässt sich das Problem etwas eingrenzen.

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

---

<div class="post-metadata">

**Author:** ![inkarnation](https://avatars.discourse-cdn.com/v4/letter/i/c57346/32.png) [@inkarnation](https://forum.shopware.com/u/inkarnation)\
**Post date:** [28. November 2016 um 14:08 UTC](https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757/5 "2016-11-28T14:08:18Z")

</div>

Hallo Patrick,

habe die Methode mit dem die(); versehen und einmal die URL Manuell + einmal über den Button aufgerufen (Cache etc. natürlich alles geleert).

Tatsächlich passiert nichts, wie es scheint wird die Methode nicht aufgerufen. Habe ich das Event richtig registriert?

&nbsp;

---

<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:** [28. November 2016 um 14:26 UTC](https://forum.shopware.com/t/controller-action-wird-nicht-aufgerufen/41757/6 "2016-11-28T14:26:29Z")

</div>

Das Event dürfte passen.  
Hast du das Plugin mal neu installiert?

Kann sein, dass du das Plugin erst installiert und im Anschluss das Event zum Code hinzugefügt hast - somit wäre dein Controller-Event noch nicht im System.

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