我目前正在爲Magento寫一個EPOS集成。當訂單發出時,它的ID被放入隊列文件中。一分鐘後,cron會查看隊列,向EPOS web api發送頂級命令,然後根據結果將ID移至成功列表文件或失敗者文件。Magento網格視圖使用自定義集合
爲了向用戶顯示這些列表的內容,我創建了一個讀取文件(包含序列化數組)的管理頁面,爲每個訂單創建一個varien_object,其中包含訂單ID,客戶名稱和時間戳記,以及然後將所有這些存儲在Varien_Data_collection的實例中。然後將此集合傳遞給grid.php中的_prepareCollection函數以呈現網格視圖。
在1.4.1.1,電網呈現罰款,但分頁被打破,過濾不工作。
在1.3.2.4網格渲染,但是說,有「沒有找到記錄」。
有誰知道這可能是導致這些問題,如果有要去大約從Magento的文件中顯示信息的更好的辦法?
與序列化的文件同步是困難的,所以不可能寫入到頭部和尾部在同一時間。數據庫中的隊列不是表的原因是什麼?一個表可以提供行級鎖,允許同時進行編輯,並且已經可以與管理網格一起使用。過濾和分頁使用SQL來完成,這就是爲什麼它不能使用文件。 – clockworkgeek 2011-05-04 10:31:26
理想情況下,它將在一個數據庫中,從長遠來看,我打算重寫這個模塊。不過,我從前面的開發人員那裏繼承了這些代碼,而且我的公司正在尋找一個快速修復的工具。我同意你的觀點,檔案不是理想的情況。 也許會放棄網格視圖和一個自定義視圖會是一個更好的辦法解決這個問題,如果網格視圖時考慮數據庫中實現? – Geoff 2011-05-04 11:08:05
我想這可能與'addFieldToFilter創建自己的Varien_Data_Collection'的'後代()'和'負載()'的功能,使其與'Varien_Data_Collection_Db'兼容。它需要尊重當前頁面,頁面大小和訂單設置。這聽起來不及「快」,也許有人會用完全模仿數據庫集合的方式回答。 – clockworkgeek 2011-05-04 11:45:06