【问题标题】:Fatal error: Class 'PagesController' not found in致命错误:找不到类“PagesController”
【发布时间】:2013-03-16 19:28:56
【问题描述】:

我用 cake 有一段时间了,现在我有一个稍微修改过的页面控制器,我想在我的 default.ctp 中使用它,我用它导入它

App::uses('PagesController', 'Controller');

App::import('Controller', 'Pages');

两者都在我的本地主机 xampp 上工作,在 openshift Web 服务器上都不工作。 无论我做什么,我都会遇到致命错误,找不到类。用谷歌搜索这个问题 2 小时,感觉就像我在这里撞墙一样。请帮忙:)

【问题讨论】:

    标签: cakephp import controller fatal-error


    【解决方案1】:

    我会尽量避免这些调用并使用 CakePHP 约定。您的本地 XAMPP 副本和 OpenShift 副本之间的差异可能是由于运行不同版本的 CakePHP,但如果您遵循约定,这无关紧要。

    最好将所有使用 PagesController 的内容放在文件夹 app/View/Pages 中。这样,CakePHP 就可以处理所有的导入、需求、路由等。除此之外,请记住 OpenShift 中的应用程序路径是 /php/app/(与 XAMPP 相对的 /app/)。我想如果您有自定义控制器,这可能会导致问题。希望这会有所帮助!

    编辑:我刚刚意识到默认情况下.ctp,你的意思是布局文件。我个人不喜欢在布局中调用控制器。我更喜欢为此使用元素或助手。此外,PagesController 实际上并不意味着包含在站点范围的布局中。它仅适用于 /app/View/Pages 文件夹中的文件。

    【讨论】:

    • 它在这里工作,我希望它在每一页上,所以基本上我必须将它添加到布局中:|
    • 作为后续,查看帮助文档,看看这是否可以处理您需要的逻辑。 book.cakephp.org/2.0/en/views/helpers.html
    【解决方案2】:

    好的,我使用 requestAction 代替,这有效。 :) 要解决类似的问题,可以说 $pages = $this->requestAction('pages/');

    然后在你需要的时候'foreach' $pages 数组。 重要的!在创建页面的控制器函数中(在本例中为控制器 pagesController 和函数 'index' )不要忘记返回你编写的 $pages 对象,而不仅仅是像通常那样“设置”它。 :)

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 2011-09-08
      • 2011-12-17
      • 2018-12-21
      • 2012-11-21
      • 2015-03-20
      • 2015-03-28
      • 2014-03-13
      相关资源
      最近更新 更多