CakePHP 2.1新安装缺少控制器错误

时间:2012-03-06 23:40:22

标签: cakephp install

我是CakePHP的新手并安装了2.1。我收到了这个错误:

  

缺少控制器

     

错误:找不到Index.phpController。

     

错误:在文件中创建下面的Index.phpController类:app \ Controller \ Index.phpController.php

     

< PHP   class Index.phpController扩展AppController {

     

}   注意:如果要自定义此错误消息,请创建app \ View \ Errors \ missing_controller.ctp

     

堆栈跟踪

     

APP \ webroot \ index.php第96行→Dispatcher-> dispatch(CakeRequest,CakeResponse)   ROOT \ index.php第40行→require(字符串)

我在http://book.cakephp.org/2.0/en/installation/advanced-installation.html跟随他们的导游并尝试了所说的一切:

  • 我启用了mod_rewrites(它们已经从其他地方启用了)
  • 我在目录中有所有.htaccess文件
  • 我在我的文档根目录下安装了蛋糕,所以我在localhost / cakephp / index.php上访问它

我不知道从哪里开始。谢谢你能给我的任何帮助。

3 个答案:

答案 0 :(得分:4)

更新:我刚刚重新阅读了您的问题并意识到您正在加载http://localhost/cakephp/index.php。不要那样做。由于你附加了“index.php”,它试图加载一个名为“index.php”的控制器和该控制器的动作“index”。生成“index.php控制器”的映射路径是app \ Controller \ Index.phpController.php。

由于您已启用重写,因此请浏览http://localhost/cakephp而不附加任何文件名。


原始答案:

假设您正在使用Apache,请仔细检查/ app / webroot目录中的.htaccess。它应包括以下内容:

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

根据您的错误,它看起来不像是在index.php文件后正确附加路径。

答案 1 :(得分:1)

如果您使用的是cakephp 2.0或更高版本,请将控制器文件名重命名为类名。 即TaskController.php

class TasksController extends AppController {

--Your code inside class
}

我希望这会对你有所帮助

答案 2 :(得分:0)

最简单的解决方案是尽可能贴近“现场环境”。 这意味着使用vhosts使用“域”并正确根目录到您的webroot目录: http://www.dereuromark.de/2011/05/29/working-with-domains-locally/

这几乎没有任何错误的余地,也有助于解决其他潜在的问题,如“绝对链接的资产文件”等