14

我正在尝试使用产品加入自定义集合,以在管理网格小部件中显示产品名称(不仅仅是 id)。到目前为止,我找不到正确的语法。

我可以通过以下方式检索具有产品名称的产品:

Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('name');

我可以通过以下方式检索我的自定义集合:

法师::getResourceModel('xyz_mymodule/model_collection');

我如何加入这两者,以便模块集合是主集合,而 $model->getId() 返回的 id 仍然是我的自定义集合的 id?

4

2 回答 2

28

这里有一个工作示例:

$collection = Mage::getModel('sales/order')->getCollection();
$collection->getSelect()->join( array('order_item'=> 'sales_flat_order_item'), 'order_item.order_id = main_table.entity_id', array('order_item.sku'));
于 2013-08-14T22:44:23.990 回答
3

只是一个快速的更正,我必须在表名上添加引号:array('order_item'=> 'sales_flat_order_item' ),getSelect() 也不是必需的,因为第三个参数是属性列表。最后一个参数指定您想要使用的连接类型。

我的版本看起来像这样:


$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->join(array('order'=> 'sales/order'),'order.entity_id=main_table.entity_id', array('po_number'=>'po_number', 'imi_customer_email' =>'imi_customer_email'), null,'left');
$this->setCollection($collection);`
于 2015-07-08T08:28:03.100 回答