2009-08-09 44 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

相关问题