0

我有一个产品 ID 列表,基于该产品 ID,我想获取产品名称,但由于 catalog_product_entity 表不包含产品名称,所以我被困住了。

请检查我的代码,我试过左右加入,但没有得到名字

$collection = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToSelect('name')
    ->getSelect()->joinRight( 
        array('table_alias'=>'my_table'), 
        'entity_id = table_alias.product_id',
        array('table_alias.*')
    );

$result = null;

foreach ($collection as $temp) {    
    $result[] = array(
        'name' => $temp->getCustomer_name(),               
    );
}   
4

2 回答 2

0

如果您希望您的收藏加载产品名称,那么您的代码的第一部分是正确的。这是一个简化版本:

$collection = Mage::getResourceModel('catalog/product_collection')
                  ->addAttributeToSelect('name');

$result = array();

foreach ($collection as $temp) {
    $result[] = array('name' => $temp->getName());
}
于 2012-07-13T13:41:09.087 回答
0

这就是我解决它的方法

$resource        = Mage::getSingleton('core/resource');
                $readResource    = $resource->getConnection('core_read');
                $tableName       = $resource->getTableName('myTable');

                $results = $readResource->select('table_alias.*')
                ->from($tableName)
                ->joinLeft(
                                array('table_alias'=>'catalog_product_flat_1'), 
                                'product_id = table_alias.entity_id',
                                array('table_alias.*')
                            )->where('customer_id=?',$customerId);

                $products=$readResource->fetchAll($results);

                $dataList = array();

                foreach($products as $row)
                {
                    $dataList[] = array('productName'=>$row['name'],'price'=> $row['price'],'status'=>$row['status'],'myTable_id'=>$row['myTable_id']);
                }
于 2012-07-16T07:16:46.630 回答