0

商品IDのリストがあり、その商品IDに基づいて商品名を取得したいのですが、catalog_product_entityテーブルに商品名がskuしか含まれていないため、トラップされています。

親切に私のコードをチェックしてください、私は両方を左と右に結合しようとしましたが、名前を取得していません

$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

これが私がそれを解決した方法です

$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 に答える
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 に答える