2013-03-16 74 views
1

即时通讯使用的蛋糕有一段时间没有找到,现在我有一个稍微修改过的页面控制器,我想在我的default.thtml中使用它,我致命错误:类“PagesController”在

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

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

在我的本地XAMPP都工作,既不openshift Web服务器。 无论我做什么,我得到致命的错误,没有找到类。一直在使用这个问题2个小时,并感觉我在这里打墙。请帮助:)

回答

0

我会尽量避免这些调用并使用CakePHP约定。本地XAMPP副本和OpenShift副本之间的区别可能是由于运行了不同版本的CakePHP,但如果遵循约定,则这并不重要。

最好的做法是将所有使用PagesController的东西放在foler app/View/Pages中。 CakePHP处理所有导入,需求,路由等。除此之外,请记住OpenShift中的应用程序路径是/ php/app /(而不是XAMPP/app /)。我想这可能会导致问题,如果你有自定义控制器。希望这可以帮助!

编辑:我刚刚意识到,通过default.ctp,你的意思是布局文件。我个人不喜欢在布局中调用控制器。我更喜欢使用这些元素或助手。此外,PagesController实际上并不意味着被包含在整个站点的布局中。它只是用于/ app/View/Pages文件夹中的文件。

+0

它在这里工作,我想它的每一页上,所以基本上我要补充它无论如何布局:| – 2013-03-16 19:44:09

+0

作为后续工作,请查看助手文档,看看它是否可以处理您需要的逻辑。 http://book.cakephp.org/2.0/en/views/helpers.html – Steven 2013-03-16 19:44:58

0

好的,我用requestAction代替,并且这个工作。 :) 解决类似的问题,使用让我们说$ pages = $ this-> requestAction('pages /');

然后'foreach'$ pages数组,只要你需要。 重要!在你的控制器的创建页面的函数中(在这种情况下,控制器页面控制器和函数'索引')不要忘记返回$ pages对象你写作,而不是像通常那样'设置'。 :)