2010-05-10 46 views
0

我試圖實現一個簡單的方法來管理CakePhp中的靜態頁面,如this article中所述。App :: import()不起作用的可能原因是什麼?

我面臨的問題是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 ...
這個類是存在於模型文件夾(型號/ StaticPage.php)。

我剛開始CakePHP的幾個星期前,我想我在這裏失蹤一件簡單的事情......

我使用CakePHP 1.3和PHP 42年2月5日。

回答

1

我認爲它不起作用的原因是因爲你沒有遵循CakePHP的naming conventions for file names:文件名是小寫字母和下劃線。所以重命名你的文件到static_page.php應該可以解決這個問題。

0

像錯誤說:你錯過了Class StaticPage。你確定你有這個文件嗎?如果你這樣做,確保它在正確的位置,有正確的文件名,以便自動加載器可以找到它?

+0

該文件位於app/models/StaticPage.php中,並在鏈接的文章中實現。 – 2010-05-10 13:17:50

1

快速瀏覽了您引用的文章後,您的代碼段不匹配。您正在導入ClassRegistry類(不需要導入),然後嘗試實例化StaticPage。我建議一起取出AppImport參考和使用ClassRegistry

$page = ClassRegistry::init('StaticPage'); 

你不需要AppImport線,因爲ClassRegistry::init()都加載模型和實例化對象。

我看到的其他(潛在)問題是您的模型文件名不符合約定。它應該是models/static_page.php。 Cake的變形可能不會處理與標準的偏差。

+0

看起來像您在發佈我的答案的同時編輯了您的代碼段。現在片段相匹配。 – 2010-05-10 13:19:36

相關問題