【发布时间】:2013-01-25 15:44:36
【问题描述】:
我到处搜索,但找不到有效的答案。
如何获取所有销售/订单状态_状态的集合。一个使用 ResourceModel 还是一个简单的 Model ?
谢谢
【问题讨论】:
标签: magento state status ecommerce-sales
我到处搜索,但找不到有效的答案。
如何获取所有销售/订单状态_状态的集合。一个使用 ResourceModel 还是一个简单的 Model ?
谢谢
【问题讨论】:
标签: magento state status ecommerce-sales
你可以使用
$collection = Mage::getResourceModel( 'sales/order_status_collection' )->joinStates();
或
$collection = Mage::getSingleton( 'sales/order_status' )->getCollection()->joinStates();
$collection = Mage::getModel( 'sales/order_status' )->getCollection()->joinStates();
它们都返回一个集合,但第一个直接返回集合,单例版本使用单例,因此两次调用同一模型的 getSingleton 只会创建一个类实例,然后创建一个新集合,而 getModel 版本将两次调用创建两个不同的模型,然后以与 getSingelton 版本相同的方式创建集合。
所以区别只在于它在返回集合之前创建了多少类的开销。
您无法直接使用“sales/order_status_state”,因为它的模型、资源模型和集合不存在 - 状态通过 joinStates() 函数加入状态集合。
【讨论】:
exception 'Exception' with message 'Warning: include(Mage/Sales/Model/Order/Status/State.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/hdmpt/public_html/gtdev/fresh/lib/Varien/Autoload.php on line 93' in /home/hdmpt/public_html/gtdev/fresh/app/code/core/Mage/Core/functions.php:245