2010-10-27 77 views
0

我已經寫了一個模塊來添加我自己的事件,並在主頁我想只顯示最新的事件。所以在這種情況下,我不得不通過查詢添加命令,但我不能這樣做,它總是會引發致命錯誤。Magento自定義模塊數據庫查詢

這就是我所做的。

$_offers = Mage::getSingleton('offerings/offerings')->getCollection(); 

這將返回所有的記錄,在這裏我可以能夠設置過濾器選項,但我不能添加排序次序是這樣

$_offers = Mage::getModel('offerings/offerings')->getCollection() 
      ->addAttributeToSort('offerings_id', 'DESC') 
      ->setPageSize(5) 
      ->setPage(1, 5); 

甚至用法師:: getSingleton。這裏面臨的問題是什麼?請幫助我

+1

你的產品系列擴展了哪些類?它是基於EAV嗎?另外,拋出的致命錯誤是什麼? – clockworkgeek 2010-10-27 16:41:07

+0

它不擴展EAV類,所以我不能使用排序過濾器方法。它會拋出致命錯誤:addAttributeToSort方法無法找到... – Elamurugan 2010-10-27 20:48:06

回答

2

我沒有花時間來測試,但我懷疑你需要做這樣的事情的更多信息:

$_offers = Mage::getModel('offerings/offerings')->getCollection() 
      ->setOrder('offerings_id', 'DESC') 
      ->setPageSize(5); 

正如所指出的,EAV方法addAttributeToSort()在這裏不起作用。 setPage()也不會,setPageSize()也一樣好。

有大量的教程和指南來學習這些東西。 Alan的knowledgebase articles是關於這個問題的權威性資源,你會很好地閱讀和練習這一切。

0

包含一條錯誤消息,人們可以開始幫助你。

我的猜測,如果你使用模塊創建器來創建你的模塊,它給你一個默認的非eav模型和集合。 addAttributeToSort方法僅適用於EAV集合。

有關於你的各種排序選項這裏

Magento get a product collection in an arbitrary order

+0

確切地說,你是對的。使用模塊創建器,它不擴展EAV類,所以我如何使用查詢來排序它。謝謝 – Elamurugan 2010-10-27 20:46:06