Frage

Ich arbeite mein Projekt von CakePHP 1,2 bis 1,3 auf ein Upgrade. In dem Prozess, so scheint es, dass die „Magie“ Routing für Plugins, mit dem ein Controller-Namen (zB: „ForumsController“) den Namen des Plugins für: (zB: „Foren“) nicht mehr automatisch Routen an die Wurzel des Plugins URL (zB :. "www.example.com/forums" zeigt auf Plugin "Foren", Controller "Foren", Aktion "index")

Die Fehlermeldung gegeben ist wie folgt:

Error: ForumsController could not be found.

Error: Create the class ForumsController below in file: app/controllers/forums_controller.php

<?php
class ForumsController extends AppController {
    var $name = 'Forums';
}
?>

In der Tat, auch wenn ich auf „www.example.com/forums/forums“ oder „www.example.com/forums/forums/index“ navigieren, ich exakt den gleichen Fehler.

Muß ich explizit Routen zu jeder einzelnen Plugin I Verwendung einrichten? Das scheint viel von der Magie Ich mag über CakePHP zu zerstören. Ich habe nur festgestellt, dass die folgenden Werke zu tun:

Router::connect('/forums/:action/*', array('plugin' => 'forums', 'controller' => 'forums'));
Router::connect('/forums', array('plugin' => 'forums', 'controller' => 'forums', 'action' => 'index'));

Einrichten von 2 Routen für jede einzelne Plugin scheint übertrieben, nicht wahr? Gibt es eine bessere Lösung, die alle meine Plugins abdecken oder zumindest reduzieren die Anzahl der Routen muss ich für jedes Plugin einrichten?

War es hilfreich?

Lösung

Ich denke, dass Thema Konfiguration-and-application-Bootstrapping Abdeckungen, dass:

App::build(array(
    'plugins' => array('/full/path/to/plugins/', '/next/full/path/to/plugins/')
));

Werfen Sie auch einen Blick auf dieses Ticket: http://cakephp.lighthouseapp.com/projects/42648/tickets/750-plugin-route-problem-when-acl-and-auth-components-used # Ticket-750-5 (Kuchen 1.3 mußte entfernt Magie Plugin Routen).

Andere Tipps

Sie haben noch myplugin_app_controller.php in Ihrem / app / plugins / myplugin Verzeichnis.

Erstellen Sie einfach eine Datei mit folgenden:

<?php
class MypluginAppController extends AppController {

}
?>

Und es wird alle Funktionen des Plugin hat. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top