2013-08-14 12 views
10

私は管理グリッドウィジェットに製品名(IDだけでなく)を表示するために、製品とカスタムコレクションを結合しようとしています。これまでのところ私は正しい構文を見つけることができません。Magentoのコレクションに参加するには?

私は、次のことで、製品名を持つ製品を取得することができる午前:

メイジ:: getModel( 'カタログ/製品') - > getCollection() - > addAttributeToSelect( '名前');

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

メイジ:: getResourceModel( 'xyz_mymodule/model_collection');

モジュールコレクションがプライマリコレクションであり、$ model-> getId()で返されたIDがまだ私のカスタムコレクションのIDであるようにするにはどうすればよいですか? 、

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

挨拶それが役に立てば幸い:

答えて

22

ここでは、作業例を持っています。

+0

はかつて私は、私のテーブルを置く私が使用:。 – user2683224

+2

$集・> getSelectを() - >「((配列を結合します製品 '=> 'catalog_product_flat_1')、 \t \t \t \t \t \t \t \t \t \t \t \t' product.entity_id = main_table.produ ct_fk」 \t \t \t \t \t \t \t \t \t \t \tアレイ( '*'、\t \t \t \t \t \t \t \t "PRODUCT_NAME" => "product.name" \t \t \t \t、 \t \t \t \t \t \t \t \t \t \t \t \t "container_name" => "main_table。名前」、 \t \t \t \t \t \t \t \t \t \t \t \t) \t \t \t \t \t \t \t \t \t \t \t \t);? – user2683224

+0

パーフェクト、それはで –

1

私は、テーブル名に引用符を追加する必要がありましただけで簡単に補正:3番目の引数は属性リストがあるよう 配列(「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);` 
+0

ありがとう、私はそれらの引用符を逃した:) –

関連する問題