Magento:从自定义查询获取集合

Magento:从自定义查询获取集合,magento,Magento,我们可以在Magento中编写自定义查询: $write = Mage::getSingleton('core/resource')->getConnection('core_write'); $write->query("insert into tablename values ('aaa','bbb','ccc')"); 现在,当我从Mage::getModel()->getCollection获取时,如何将查询的输出获取到集合中?创建一个扩展一个基本集合对象的对象,并将查询

我们可以在Magento中编写自定义查询:

$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$write->query("insert into tablename values ('aaa','bbb','ccc')"); 

现在,当我从
Mage::getModel()->getCollection
获取时,如何将查询的输出获取到集合中?

创建一个扩展一个基本集合对象的对象,并将查询添加到load方法

load()
位置错误,应改为使用
\u beforeLoad()
。@Zyana您将使用\u beforeLoad向扩展的现有集合添加其他信息。不,您在这里错了。在极少数情况下,当您需要在
Varien\u Data\u Collection\u Db::load()中自定义逻辑时,需要重写load()方法。在所有其他情况下,
\u beforeLoad()
\u renderFiltersBefore()
等。应在具有自定义逻辑的子类中重载方法。至少它被认为是magento的最佳实践。我(暗示)建议将
Varien_Data_Collection
作为基类,并自己填充集合。如果要使用
Varien\u Data\u Collection\u Db
,则需要将选择集中到_select属性中。这里真正的问题是没有任何关于Magento的最佳实践,这都是社区的猜测。对不起,我误解了你。关于最佳实践-确保社区开发人员不遵守任何规则。但magento公司的员工有一些规则和最佳实践,在大多数情况下,他们在编写新代码时都会遵循这些规则和最佳实践。当然,很多旧代码仍然是一团糟:(但在magento2中情况会有所改变。