2009-08-09 45 views
12

我剛剛成功安裝了CakePHP,我發現我可以編輯home.ctp視圖,但是是否有索引頁的默認控制器?是否有CakePHP安裝的索引頁的默認控制器?

To change the content of this page, create: APP/views/pages/home.ctp. 
To change its layout, create: APP/views/layouts/default.ctp. 
You can also add some CSS styles for your pages at: APP/webroot/css. 

回答

7

是,默認的控制器是PagesController,位於:

cake/libs/controller/pages_controller.php 
+6

我想這個答案是種危險的,但因爲這是在谷歌的第一個結果,我想我應該澄清一個3歲的答案。 cake/libs/controller/pages_controller.php文件是核心源文件的一部分,在更新源文件時,對核心文件所做的任何更改都將被覆蓋。改變路線(塔裏克的答案)通過配置的方式來提取問題,這是一個有效的選擇。然而,CakePHP運行的是一個關於配置精神的約定,所以最好的實踐就是Hectors解決方案,它應該被標記爲正確的答案。 – Strixy 2013-05-17 15:48:33

23

如果你想修改這個控制器,建議您複製默認

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

原因是因爲你不應該修改任何文件在更新應用程序時可能覆蓋的「cake」文件夾內的任何內容與最新的cakephp版本。

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

,如果你想將所有的動作連接到一個動作,在相同的配置文件中使用下面的代碼也:

+4

在CakePHP 2.1及更高版本中,PagesController.php包含在app/Controller文件夾(而不是核心文件夾)中,不再是核心源文件的一部分。 – Strixy 2013-05-17 16:20:50

13

您可以通過改變Route::connect()函數的參數,如下面改變默認的行爲:

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

當然你應該改變參數以滿足自己的需要。

此配置位於app/config/routes.php下。

要獲取有關Route::connect()的更多信息,請訪問此頁:http://api.cakephp.org/class/router#method-Routerconnect

相關問題