我正在尝试实现一种在CakePhp中管理静态页面的简单方法,如this article中所述。
我遇到的问题是App::import()
似乎没有在routes.php文件中导入所需的类。
代码如下:
App::import('Model','StaticPage');
$page = new StaticPage();
$slugs = $page->find('list', array(
'fields' => array('StaticPage.slug'),
'order' => 'StaticPage.slug DESC'
));
我收到错误:Fatal error: Class 'StaticPage' not found in ...
该类存在于models文件夹(models / StaticPage.php)中。
几周前我刚开始使用CakePhp,我想我在这里错过了一件简单的事情......
我正在使用CakePhp 1.3和Php 5.2.42。
答案 0 :(得分:1)
快速浏览一下您引用的文章后,您的代码段就不匹配了。您正在导入ClassRegistry
类(不需要导入),然后尝试实例化StaticPage
。我建议您同时删除AppImport
引用并使用ClassRegistry
:
$page = ClassRegistry::init( 'StaticPage' );
您不需要AppImport
行,因为ClassRegistry::init()
都会加载模型并实例化对象。
我看到的另一个(潜在)问题是您的模型文件名不遵循惯例。它应该是models/static_page.php
。蛋糕的变形可能无法处理与标准的偏差。
答案 1 :(得分:1)
我认为它不起作用的原因是因为你不遵循CakePHP的naming conventions for file names:文件名是小写的并且是强调的。因此,将文件重命名为static_page.php
可以解决问题。
答案 2 :(得分:0)
如错误所示:您缺少Class StaticPage。你确定你有这个档案吗?如果你这样做,确保它在正确的位置,有正确的文件名,以便自动加载器可以找到它吗?。