cakephp plugin findet login Action nicht. (Error: The action users is not defined in controller XXX)
15. Juli 2010 Roland
Ich habe bei meiner Applikation Plugins eingeführt, damit ich für einzelne Kundenprojekte Erweiterungen erstellen kann ohne jedes mal alles in einen Topf werfen zu müssen.
Schön, mein Plugin hatte schon richtig gut funktioniert. Und dann kam das Problem, dass das Routing zum Standard User Management nicht mehr funktionierte.
Ich erhielt folgende Meldung:
-
-
Error: Create XXXsController::users() in file: app/controllers/XXXs_controller.php.
-
< ?php
-
class XXXsController extends AppController {
-
-
var $name = 'XXXs';
-
-
function users() {
-
-
}
-
-
}
-
?>
-
-
Notice: If you want to customize this error message, create app/views/errors/missing_action.ctp.
Ich will dich nicht langweilen und habe deshalb meinen Controller durch XXX ersetzt.
Falls dir so etwas auch einmal passiert, kannst du das wie folgt korrigieren:
Ich habe den Controller von meinem AppController abgeleitet.
Im AppController habe ich die Authorisierungs- Login Aktion wie folgt deklariert:
-
$this->Auth->loginAction = array( 'controller' => 'users', 'action' => 'login');
Mit dieser Anweisung wird vom CakePHP Framework das Plugin vorangestellt. Somit ergibt sich der URL [PLUGIN]/[USER-CONTROLLER]/[ACTION].
Damit das Plugin ignoriert wird musst du die Zeile um
-
$this->;Auth->loginAction = array('plugin' => '', 'controller' =>; 'users', 'action' =>; 'login');
erweitern.
Dann wird das Plugin für das Login Routing nicht mehr verwendet.
Im Netz habe ich nach diesem Fehler gegoogelt. Ich fand auf Anhieb drei Seiten auf denen dieser Fehler auftrat und in Produktion gestellt wurde. Das ist natürlich nicht sehr clever…
Artikel mit ähnlichen Schlagwörtern
Der Beitrag wurde am Donnerstag, den 15. Juli 2010 um 10:33 Uhr veröffentlicht und wurde unter IT, Programmieren abgelegt.
Dir gefiel der Artikel? Dann abonniere doch den RSS Feed![]()
Du kannst die Kommentare zu diesem Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.








