2009-08-09 3 views

Antwort

7

Ja, die Standard-Controller PagesController ist, befindet sich in:

cake/libs/controller/pages_controller.php 
+6

Ich glaube, diese Antwort Art gefährlich ist, aber da dies das erste Ergebnis auf Google, ich dachte, dass ich eine 3 Jahre alte Antwort klären würde:

Um mehr Informationen über Route::connect(), besuchen Sie diese Seite zu bekommen. Die Datei cake/libs/controller/pages_controller.php ist Teil der Hauptquelle und alle Änderungen an den Kerndateien werden beim Aktualisieren der Quelle überschrieben. Ändern der Route (Tariks Antwort) abstrahiert das Problem durch Konfiguration und es ist eine gültige Option. CakePHP führt jedoch eine Konvention über Konfigurationsethos aus, so dass es sich bei der Hectors-Lösung um eine Best-Practice-Lösung handelt, die als richtige Antwort gekennzeichnet werden sollte. – Strixy

23

Wenn Sie Änderungen an diesen Controller machen wollen, wird empfohlen, den Standard

cake/libs/controller/pages_controller.php to app/controller/pages_controller.php

kopieren

Der Grund dafür ist, dass Sie nichts im "Kuchen" -Ordner ändern sollten, wo eine Datei überschrieben werden kann, wenn Sie Ihre Anwendung aktualisieren mit der neuesten CakePHP-Version.

+4

In CakePHP 2.1 und höher ist PagesController.php im Ordner app/Controller (anstelle des Hauptordners) enthalten und nicht mehr Teil der Hauptquelle. – Strixy

13

können Sie das Standardverhalten ändern, indem die Route::connect() Funktionsargumente zu ändern, wie unten:

Router::connect('/', array('controller' => 'requests', 'action' => 'index', 'home')); 

und auch, wenn Sie alle Aktionen auf eine Aktion anschließen möchten, verwenden Sie den Code unten in der gleichen Konfigurationsdatei :

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); 

Natürlich sollten Sie die Argumente auf Ihre eigenen Bedürfnisse ändern.

Diese Konfiguration befindet sich unter app/config/routes.php. http://api.cakephp.org/class/router#method-Routerconnect