CakePHP安装的索引页是否有默认控制器?

All*_*Liu 12 cakephp

我刚刚成功安装了CakePHP,我看到我可以编辑home.ctp视图,但索引页面是否有默认控制器?

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.
Run Code Online (Sandbox Code Playgroud)

Héc*_*cía 23

如果要对此控制器进行修改,建议您复制默认值

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

原因是您不应修改"cake"文件夹中的任何内容,在使用最新的cakephp版本更新应用程序时,任何文件都可能被覆盖.

  • 在CakePHP 2.1及更高版本中,PagesController.php包含在app/Controller文件夹(而不是核心文件夹)中,不再是核心源的一部分. (4认同)

Tar*_*rik 13

您可以通过更改Route::connect()函数参数来更改默认行为,如下所示:

Router::connect('/', array('controller' => 'requests', 'action' => 'index', 'home'));
Run Code Online (Sandbox Code Playgroud)

如果要将所有操作连接到一个操作,请在同一配置文件中使用以下代码:

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
Run Code Online (Sandbox Code Playgroud)

当然,您应该根据自己的需要更改参数.

此配置位于app/config/routes.php.

要获得更多信息Route::connect(),请访问此页面:http://api.cakephp.org/class/router#method-Routerconnect


jim*_*myi 7

是的,默认控制器是PagesController,位于:

cake/libs/controller/pages_controller.php
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个答案有点危险,但由于这是谷歌的第一个结果,我想我会澄清一个3岁的答案.文件cake/libs/controller/pages_controller.php是核心源的一部分,更新源时将覆盖对核心文件所做的任何更改.更改路线(Tarik的答案)通过配置抽象问题,这是一个有效的选项.然而,CakePHP运行了一个关于配置精神的约定,所以作为最佳实践,它实际上是Hectors解决方案,应该被标记为正确的答案. (6认同)