2010-08-19 41 views
1

我在Alan Storm的教程中關注了Magento's Model and ORM basics,我遇到了一些問題。當我第一次到達從模型加載的部分時,出現此錯誤「致命錯誤:調用非成員函數的load()函數...」。我已經重置了所有的東西,並且從零開始嘗試,但我仍然遇到同樣的問題。我的代碼如下所示:Magento - 設置模型讀取適配器的問題

$params = $this->getRequest()->getParams(); 
$blogpost = Mage::getModel('weblog/blogpost'); 
var_dump($blogpost); 
echo("Loading the blogpost with an ID of ".$params['id']); 
$blogpost->load($params['id']); 

正如你可以看到我甩$博文的內容,它表明,它僅僅是一個布爾值false。我的猜測是,與數據庫的連接有問題,或者出於某種原因,Mage :: getModel()的代碼沒有正確安裝。

編輯 - 添加代碼

有這麼多,我只是決定他們引擎收錄笑

app/code/local/Ahathaway/Weblog/controllers/IndexController.php

app/code/local/Ahathaway/Weblog/etc/config.xml

app/code/local/Ahathaway/Weblog/Model/Blogpost.php

app/etc/modules/Ahathaway_Weblog.xml

回答

2

你的Model/Blogpost.php文件實際上應該是Model/Mysql4/Blogpost.php,並且你缺少真正的Model/Blogpost .PHP。

+0

我道歉,你是什麼意思真正的模型/ Blogpost.php? Magento包裝中是否包含一個? – 2010-08-19 21:34:55

+2

看看Alan Storm的教程。有兩個不同的文件叫做Blogpost.php: 模型:Model/Blogpost.php 資源模型:Model/Mysql4/Blogpost.php 你有: 資源模型錯了地方:Model/Blogpost.php – 2010-08-20 06:26:52

1

我的猜測是法師找不到你的模型班。仔細檢查模塊/模型名稱,並驗證模型是否在文件系統的正確位置(它應該位於app/code/local/Weblog/Model/Blogpost.php中)。

您還需要檢查您的config.xml是否正確定義了您的模型類。如果你可以通過你的config.xml和你的模型類...

+0

我在代碼中添加了代碼。在你的評論中你說的路徑應該是app/code/local/Weblog/Model/Blogpost.php,它不應該像我的名字空間那樣嗎? – 2010-08-19 20:37:48

+0

當然它應該,我的壞:) – silvo 2010-08-19 23:19:00

1

快速瀏覽顯示您缺少模型資源。回到以下代碼示例的部分

File: app/code/local/Alanstormdotcom/Weblog/Model/Mysql4/Blogpost.php 

class Alanstormdotcom_Weblog_Model_Mysql4_Blogpost extends Mage_Core_Model_Mysql4_Abstract{ 
    protected function _construct() 
    { 
     $this->_init('weblog/blogpost', 'blogpost_id'); 
    } 
} 
+0

完美,謝謝!無論出於何種原因,我對資源模型交易感到困惑。 – 2010-08-20 19:07:03

+0

「模型」爲您提供邏輯模型(「獲取電子郵件地址,獲取標題等)」。資源模型可以實際查詢數據庫。理論上你可以放入一個新的資源模型,它可以從另一個數據庫版本/包中讀取,而不必更改基本模型類。 – 2010-08-20 19:44:56