Como participar de coleções em Magento?
estou a tentar juntar-me a uma colecção personalizada com produtos para mostrar o nome do produto (não apenas o id) no elemento da grelha de administração. Até agora não consigo encontrar a sintaxe correcta.
Eu sou capaz de recuperar os produtos com o nome do produto pelo seguinte:
E posso recuperar a minha colecção personalizada com:Mage:: getModel ('catalog / product') - >getCollection () - >addAttributeToSelect ('name');
Mage:: getResourceModel ('xyz_module/model_collection');
Como faço para me juntar aos dois para que a colecção de módulos seja a colecção primária e o id como devolvido por $model->getId() ainda seja o id da minha colecção personalizada?
2 answers
Aqui tem um exemplo de trabalho:
$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'));
Apenas uma correcção rápida tive de adicionar aspas no nome da tabela: array ('order_item' => 'sales_flat_order_item' ), Also getSelect () is not necessary as the third argument is the attribute list. O argumento Final especifica o tipo de junção que você gostaria de usar.
A minha versão era assim:$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);`