Direkt zur Hauptnavigation springen Direkt zum Inhalt springen
Alle Beiträge

TYPO3: The controller "XXXX" is not allowed

Extbase bricht den Aufruf eines Plugins mit dieser Meldung ab:

The controller "Foo" is not allowed by plugin "Bar". Please check for
TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php.

Der Grund steht in der Meldung selbst: Extbase lässt nur die Controller und Aktionen zu, die beim Registrieren des Plugins angemeldet wurden. Alles andere weist es ab — auch wenn die Klasse existiert und die Methode richtig heißt.

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'MeineExtension',
    'MeinPlugin',
    [\Hersteller\MeineExtension\Controller\FooController::class => 'list, show'],
    [\Hersteller\MeineExtension\Controller\FooController::class => 'show'],
);

Der dritte Parameter zählt alle erlaubten Aktionen auf, der vierte die, die am Cache vorbei laufen sollen.

Was sich seit 2013 geändert hat

In der ersten Fassung dieses Beitrags stand, der Controller müsse zusätzlich im FlexForm des Plugins eingetragen werden — über switchableControllerActions. Das galt damals und gilt heute nicht mehr: TYPO3 hat die Angabe in 10.3 als veraltet markiert, und in TYPO3 14 findet sich davon nur noch der Hinweis im Changelog. Heute entscheidet allein configurePlugin().

Wer ein FlexForm mit switchableControllerActions mitschleppt, kann den Abschnitt streichen.

Geprüft mit TYPO3 14: die Meldung kommt unverändert aus dem RequestBuilder.