web-dev-qa-db-ja.com

Magentoのコレクションに参加するには?

Adminコレクションウィジェットに製品名(idだけでなく)を表示するために、製品とカスタムコレクションを結合しようとしています。これまでのところ、正しい構文が見つかりません。

次の方法で、製品名の付いた製品を取得できます。

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

そして、私は私のカスタムコレクションを取得することができます:

Mage :: getResourceModel( 'xyz_mymodule/model_collection');

モジュールコレクションがプライマリコレクションであり、$ model-> getId()によって返されるIDが引き続きカスタムコレクションのIDになるように、2つを結合するにはどうすればよいですか?

14
user2683224

ここに実際の例があります:

$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'));

ごあいさつ、お役に立てば幸いです。

28
Beto Castillo

テーブル名に引用符を追加する必要がありました:array( 'order_item' => 'sales_flat_order_item')最後の引数は、使用する結合のタイプを指定します。

私のバージョンは次のように見えました:


$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);`
1
Sofian