0

こんにちは私はsetup.phpで複数選択の製品属性を作成し、それが作成されました。私は次のコードを使用しました:

 $installer = $this; 
 $installer->startSetup();   
 $installer->addAttribute('catalog_product', 'author_name',array( 
'label' => 'Name of The Author', 
'type' => 'varchar', 
'input' => 'multiselect', 
'backend' => 'eav/entity_attribute_backend_array', 
'frontend' => '', 
'source' => '', 
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
'visible' => true, 
'required' => false, 
'user_defined' => false, 
'searchable' => false, 
'filterable' => false, 
'comparable' => false, 
'option' => array ( 'value' => array('optionone' => array('Carolyne Aarsen'), 
                                     'optiontwo' => array('Jennie Lucas'), 
                                     'optionthree' => array('Anna Adams'),
                                     'optionfour' => array('Kathryn Albright'), 
                                     'optionfive' => array('Trisha Alexander'), 
                                     'optionsix' => array('Vincent Alexandria'),
                                     'optionseven' => array('Louise Allen'), 
                                     'optioneight' => array('Abby Green'), 
                                     'optionnine' => array('Laura Abbot'),
                                     'optionten' => array('Caroline Anderson'), 
                                     'optioneleven' => array('Victoria Aldridge'), 
                                     'optiontwelve' => array('Harper Allen'),
                                     ) 
                  ), 
'visible_on_front' => false, 
'visible_in_advanced_search' => false, 
'unique' => false, 
'group' => 'General'
)); 
$installer->endSetup();

次に、サイトのナビゲーションメニューに含まれているすべてのカテゴリの各製品のauthor_name属性値を取得したいので、属性値を取得するために次のクエリを作成しました。

    $categories = Mage::getModel('catalog/category')->getCollection()
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('include_in_menu', '1');
    foreach ($categories as $_category):
    if ($_category->getName() != 'Root Catalog'): 
     $category = Mage::getModel('catalog/category')->load($_category->getId());
     $products = $category->getProductCollection()
                       ->addCategoryFilter($category)
                       ->addAttributeToSelect('author_name')
                       ->setPageSize(9); 
         $author_names = array(); 
         foreach ($products as $_product):                             
        $author_names[] = $_product->getAttributeText('author_name');
         endforeach;
         print_r($author_names); 
    endif;
    endforeach; 

配列は何も出力していません。これをデバッグすると、コレクションにauthor_name属性が含まれません。

私の質問に何か問題がありますか?私を助けてください

4

2 に答える 2

0

カスタム属性を表示するには、次のコードを試してください

<?php echo $_product->getResource()->getAttribute('author_name')->getFrontend()->getValue($_product); ?>
于 2012-12-04T05:38:43.837 に答える
0

Hello check 次のクエリが役立つ場合があります

製品 ID を取得し、この ID を使用して製品の作成者名を取得します

$reqProdid = Mage::registry('current_product')->getId();
$selected_auther =Mage::getModel('catalog/product')
    ->load($reqProdid)
    ->getData('author_name');
于 2012-12-04T05:45:03.697 に答える