Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP缺少控制器-但它存在_Php_Apache_Cakephp_Shared Hosting_Cakephp 1.3 - Fatal编程技术网

CakePHP缺少控制器-但它存在

CakePHP缺少控制器-但它存在,php,apache,cakephp,shared-hosting,cakephp-1.3,Php,Apache,Cakephp,Shared Hosting,Cakephp 1.3,我最近下载了cakephp-1.3.4。我在我的网络服务器上设置了它。我遵循了高级安装设置。我的文件夹结构如下 /common/ cakephp/ app/ etc... /htdoc/ /htdoc文件夹是webrootcakephp位于common文件夹中 我已经在index.php中配置了指向此文件夹结构的路径。我已经启动并运行了应用程序。我创建了一个布局,应用程序已经选择了它(连同所有的css和图像-所有这些都有效) 我在cakephp/app/controll

我最近下载了cakephp-1.3.4。我在我的网络服务器上设置了它。我遵循了高级安装设置。我的文件夹结构如下

/common/
  cakephp/
     app/
     etc...
/htdoc/
/htdoc
文件夹是webroot
cakephp
位于
common
文件夹中

我已经在index.php中配置了指向此文件夹结构的路径。我已经启动并运行了应用程序。我创建了一个布局,应用程序已经选择了它(连同所有的css和图像-所有这些都有效)

我在
cakephp/app/controllers/
中创建了一个
posts\u controller.php
。现在,当我尝试访问以下页面时:。我收到一条消息,说找不到控制器,我应该创建一个
app/controllers/posts\u controller.php
(它已经存在!)

还有一件奇怪的事情是使用默认的pages\u controller工作。我创建了一个about.ctp,并将其放到
app/views/pages/about.ctp
中。访问按预期显示

解决方案:


Sam帮我解决了这个问题(参见下面的长评论帖子)。问题是我为根文件夹设置了相对路径。这把事情搞砸了。解决方案是直接设置一个绝对路径,或者使用相对路径调用
realpath
,以将其解析为正确的绝对路径。

确保控制器类的命名正确(应该是PostsController)并从AppController继承(这不是严格必需的,但是良好的实践).

@Sam:我复制粘贴了它在丢失的控制器页面上显示的代码。因此,名称是PostsController,它确实继承自AppControllerWhat you using for hosting?您的文件权限是否正常?@Sam:这是一个共享托管服务器。我没有修改文件权限,除了cakePHP在初始设置中要求我修改的权限(如将
tmp
文件夹设置为可写等)之外,您还可以尝试在webroot/index.php(在$Dispatcher=new Dispatcher()之前)的底部放置一段代码,如下所示:
pr(App::path(“controllers”)好的,你的路径看起来有点混乱,确保你的根被设置为绝对路径,而不是相对路径。使用webroot/index.php中的realpath()或其他内容。