getSku, используя item_id в пользовательской таблице - PullRequest
0 голосов
/ 09 марта 2011

Я создаю пользовательский модуль. Есть две новые таблицы.

Таблица 1: t1_id (ПК), order_id (ФК)
Таблица 2: t2_id (ПК), t1_id (ФК), item_id (ФК).

Table2.item_id эквивалентно sales_flat_order_item.item_id. Я создаю пользовательский отчет и в коллекции нужно показать артикул. Сначала я попробовал следующее:

$collection = Mage::getModel('custom/two')->getCollection();

$tbl_product_collection = Mage::getSingleton('core/resource')->getTableName('catalog/product');
$tbl_one = Mage::getSingleton('core/resource')->getTableName('custom/one');
$tbl_two = Mage::getSingleton('core/resource')->getTableName('custom/two');

$collection->getSelect()  
->from(array('tbl_one' => $tbl_one))  
->join(array('tbl_two' => $tbl_two),  
 'tbl_two.t1_id = tbl_one.t1_id')  
// Join with Item ID on Simple Product  
// Showing wrong SKU   
->join(array('product' => $tbl_product_collection),  
     'tbl_two.item_id = product.entity_id');

Однако product.entity_id на самом деле является product_id sales_flat_order_item.item_id. Как я могу получить SKU в коллекции, ссылаясь на item_id в таблице2?

Спасибо за любую помощь или предложения!

1 Ответ

1 голос
/ 10 марта 2011

Потребовалось немного покопаться. Это помогает перейти к config.xml для базовой модели, которую вы просматриваете. Таким образом, вы узнаете, к какой таблице в базе данных относится getTableName.

$tbl_product_collection = Mage::getSingleton('core/resource')->getTableName('sales/order_item');
$tbl_one = Mage::getSingleton('core/resource')->getTableName('custom/one');
$tbl_two = Mage::getSingleton('core/resource')->getTableName('custom/two');

$collection->getSelect()<br> ->from(array('tbl_one' => $tbl_one))<br> ->join(array('tbl_two' => $tbl_two),<br> 'tbl_two.t1_id = tbl_one.t1_id')<br> // Join Item ID<br> ->join(array('order_item' => $tbl_order_item), 'tbl_two.item_id = order_item.item_id');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...