1

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

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

或者

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

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

4

2 回答 2

0

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

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

于 2013-03-16T21:02:15.703 回答
0

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

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

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

于 2013-03-16T19:37:13.070 回答