2010-05-21 52 views
2

我正在嘗試向我的magento模塊添加一些自定義過濾器方法。我雖然它會很簡單,但我不明白爲什麼它不起作用。Magento幫助在自定義類中創建模型

我的延伸目錄/產品類模型包含此:

public function filterProdType($prod_id) 
{ 
    $this->addAttributeToFilter('attribute_set_id', $prod_id); 

} 

然後在我的模板,我有這樣的:

$collection = Mage::getModel('configurator/product')->getCollection()->addAttributeToSelect('*'); 


$collection->filterProdType(50)->addAttributeToFilter('type_id', 'bundle'); 

foreach ($collection as $item){ 
    echo $item->getName() . ', '; 
} 

剛剛嘗試的事情了。

但我沒有得到任何結果,沒有錯誤,並且它沒有完成渲染頁面(缺少頁腳)。

當我這樣做,相反,它的工作原理:

$collection = Mage::getModel('configurator/product')->getCollection()->addAttributeToSelect('*'); 


$collection->addAttributeToFilter('attribute_set_id', 50)->addAttributeToFilter('type_id', 'bundle'); 

foreach ($collection as $item){ 
    echo $item->getName() . ', '; 
} 

我只是想知道我錯過了什麼。

UPDATE:

我沒有意識到錯誤報告被關閉,打開它後我得到的錯誤:

Fatal error: Call to undefined method 
Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::filterProdType() 

使用我的自定義模型實例$收集後認爲,這將找到我的新方法。

回答

2

當呈現這樣的「停止」時,它幾乎總是意味着Magento在試圖在phtml文件中登錄include時遇到了PHP錯誤。看看你的PHP和/或Apache錯誤日誌,看看PHP在抱怨什麼。如果沒有這些信息,有太多的變量來排除故障。

如果您絕對無法獲取錯誤日誌,請刪除您的整個phtml文件,然後逐行逐塊添加代碼,直到您可以重現您的問題,然後找出最後的錯誤你剛剛添加的位。

+0

我沒有意識到錯誤報告被關閉,將其打開後,我得到的錯誤: 致命錯誤:調用未定義的方法Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection :: filterProdType() 使用我的自定義模型實例$收集後假設,它會找到我的新方法。 也許我應該把它放在我原來的帖子裏。 :) – dardub 2010-05-24 16:42:53

+0

您的自定義方法位於單個模型類上,但模板正在集合對象上調用它。 – 2010-05-24 17:23:30

+0

對不起,我不確定你個人模特班的意思。我必須錯過一些基本的理解。 順便說一句,我想感謝你幫助我們與Magento新手。我之前已閱讀過您的博客文章,但我認爲我需要重新閱讀。 – dardub 2010-05-24 18:06:03