2012-09-26 222 views
0

我只是試圖從product collectionMagento中檢索產品名稱以及其他基本信息,但僅返回錯誤或返回空值。這是爲了創建我自己的特色產品塊。無法從Magento產品集合中獲取產品名稱

我試圖從主頁中做到這一點(特別創建的,而不是使用預構建的1列/ 2列等):

app\design\frontend\default\eyt2012\template\page\homepage.phtml 

在我的主頁,我加載像這樣

$category = new Mage_Catalog_Model_Category(); 
$category->load(236); 
$_productCollection = $category->getProductCollection(); 

然後我從list.phtml借款內<ul>代碼集,這是我知道的作品:

app\design\frontend\default\eyt2012\template\catalog\product\list.phtml 

以良好的網格格式輸出圖像,標題和價格的集合中的所有產品。

總之我到目前爲止有:

<div class="featured-products"> 
    Products of the week  

    <?php  
     $category = new Mage_Catalog_Model_Category(); 
     $category->load(236); 
     $_productCollection = $category->getProductCollection();  
    ?> 

     <ul class="products-grid">  

      <?php $_collectionSize = $_productCollection->count() ?> 
      <?php $_columnCount = 5 ?> 
      <?php 
       $i=0; foreach ($_productCollection as $_product): 
       $i++; 
      ?> 

        <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>"> 

         1 

         <a 
         href="<?php echo $_product->getProductUrl() ?>" 
         title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" 
         class="product-image"> 
          <span class="placeholder"></span> 
          <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(155); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /> 
         </a> 

         2 

         <?php if ($_product->getbrands()):?> 
          <span class="brandname"><?php echo $_product->getAttributeText('brands') ?></span> 
         <?php endif;?> 

         3 ! Code currently gets to here before error occurs 


         <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2> 

         4 
         <?php echo $this->getPriceHtml($_product, true) ?> 

         5 

         <div class="actions"> 

          <?php if($_product->isSaleable()): ?> 

           <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> 

          <?php else: ?> 

           <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> 

          <?php endif; ?> 

         </div> 




        </li> 

       <?php endforeach ?> 

      </ul> 




</div> 

基本上是剛剛從list.phtml代碼,除了用於自己的產品集合。

我已經在上面的代碼中的每個功能塊之後放置數字來測試導致錯誤的原因。目前它達到3然後停止。

任何人都可以告訴我爲什麼$_product->getName()與該區塊中的其他人無法合作嗎?

任何幫助,將不勝感激。謝謝。

編輯:

的$ _productCollection

object(Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection)[337] 
    protected '_flatEnabled' => 
    array (size=1) 
     1 => boolean false 
    protected '_productWebsiteTable' => string 'catalog_product_website' (length=23) 
    protected '_productCategoryTable' => string 'catalog_category_product' (length=24) 
    protected '_addUrlRewrite' => boolean false 
    protected '_urlRewriteCategory' => string '' (length=0) 
    protected '_addMinimalPrice' => boolean false 
    protected '_addFinalPrice' => boolean false 
    protected '_allIdsCache' => null 
    protected '_addTaxPercents' => boolean false 
    protected '_productLimitationFilters' => 
    array (size=3) 
     'category_id' => string '236' (length=3) 
     'category_is_anchor' => int 1 
     'store_id' => string '1' (length=1) 
    protected '_productCountSelect' => null 
    protected '_isWebsiteFilter' => boolean false 
    protected '_priceDataFieldFilters' => 
    array (size=0) 
     empty 
    protected '_map' => 
    array (size=1) 
     'fields' => 
     array (size=6) 
      'price' => string 'price_index.price' (length=17) 
      'final_price' => string 'price_index.final_price' (length=23) 
      'min_price' => string 'price_index.min_price' (length=21) 
      'max_price' => string 'price_index.max_price' (length=21) 
      'tier_price' => string 'price_index.tier_price' (length=22) 
      'special_price' => string 'price_index.special_price' (length=25) 
    protected '_storeId' => string '1' (length=1) 
    protected '_itemsById' => 
    array (size=0) 
     empty 
    protected '_staticFields' => 
    array (size=6) 
     'entity_id' => string 'entity_id' (length=9) 
     'entity_type_id' => string 'entity_type_id' (length=14) 
     'attribute_set_id' => string 'attribute_set_id' (length=16) 
     'type_id' => string 'type_id' (length=7) 
     'created_at' => string 'created_at' (length=10) 
     'updated_at' => string 'updated_at' (length=10) 
    protected '_entity' => 
    object(Mage_Catalog_Model_Resource_Eav_Mysql4_Product)[165] 
     protected '_productWebsiteTable' => string 'catalog_product_website' (length=23) 
     protected '_productCategoryTable' => string 'catalog_category_product' (length=24) 
     protected '_attributes' => 
     array (size=0) 
      empty 
     protected '_read' => 
     object(Varien_Db_Adapter_Pdo_Mysql)[90] 
      protected '_transactionLevel' => int 0 
      protected '_connectionFlagsSet' => boolean true 
      protected '_ddlCache' => 
      array (size=1) 
       ... 
      protected '_bindParams' => 
      array (size=2) 
       ... 
      protected '_bindIncrement' => int 2 
      protected '_debug' => boolean false 
      protected '_logQueryTime' => float 0.05 
      protected '_logAllQueries' => boolean false 
      protected '_logCallStack' => boolean false 
      protected '_debugFile' => string 'var/debug/sql.txt' (length=17) 
      protected '_debugIoAdapter' => null 
      protected '_debugTimer' => int 0 
      protected '_cacheAdapter' => 
      object(Varien_Cache_Core)[13] 
       ... 
      protected '_isDdlCacheAllowed' => boolean true 
      protected '_pdoType' => string 'mysql' (length=5) 
      protected '_numericDataTypes' => 
      array (size=16) 
       ... 
      protected '_defaultStmtClass' => string 'Zend_Db_Statement_Pdo' (length=21) 
      protected '_config' => 
      array (size=12) 
       ... 
      protected '_fetchMode' => int 2 
      protected '_profiler' => 
      object(Zend_Db_Profiler)[20] 
       ... 
      protected '_defaultProfilerClass' => string 'Zend_Db_Profiler' (length=16) 
      protected '_connection' => 
      object(PDO)[17] 
       ... 
      protected '_caseFolding' => int 0 
      protected '_autoQuoteIdentifiers' => boolean true 
      protected '_allowSerialization' => boolean true 
      protected '_autoReconnectOnUnserialize' => boolean false 
     protected '_write' => string 'catalog_write' (length=13) 
     protected '_type' => 
     object(Mage_Eav_Model_Entity_Type)[123] 
      protected '_attributes' => null 
      protected '_attributesBySet' => 
      array (size=0) 
       ... 
      protected '_sets' => null 
      protected '_eventPrefix' => string 'core_abstract' (length=13) 
      protected '_eventObject' => string 'object' (length=6) 
      protected '_resourceName' => string 'eav/entity_type' (length=15) 
      protected '_resource' => null 
      protected '_resourceCollectionName' => string 'eav/entity_type_collection' (length=26) 
      protected '_cacheTag' => boolean false 
      protected '_dataSaveAllowed' => boolean true 
      protected '_isObjectNew' => null 
      protected '_data' => 
      array (size=16) 
       ... 
      protected '_hasDataChanges' => boolean true 
      protected '_origData' => null 
      protected '_idFieldName' => string 'entity_type_id' (length=14) 
      protected '_isDeleted' => boolean false 
     protected '_attributesById' => 
     array (size=0) 
      empty 
     protected '_attributesByCode' => 
     array (size=0) 
      empty 
     protected '_attributesByTable' => 
     array (size=0) 
      empty 
     protected '_staticAttributes' => 
     array (size=0) 
      empty 
     protected '_entityTable' => string 'catalog_product_entity' (length=22) 
     protected '_describeTable' => 
     array (size=0) 
      empty 
     protected '_entityIdField' => string 'entity_id' (length=9) 
     protected '_valueEntityIdField' => null 
     protected '_valueTablePrefix' => null 
     protected '_isPartialLoad' => boolean false 
     protected '_isPartialSave' => boolean false 
     protected '_sortingSetId' => null 
     protected '_attributeValuesToDelete' => 
     array (size=0) 
      empty 
     protected '_attributeValuesToSave' => 
     array (size=0) 
      empty 
    protected '_selectEntityTypes' => 
    array (size=0) 
     empty 
    protected '_selectAttributes' => 
    array (size=0) 
     empty 
    protected '_filterAttributes' => 
    array (size=0) 
     empty 
    protected '_joinEntities' => 
    array (size=0) 
     empty 
    protected '_joinAttributes' => 
    array (size=0) 
     empty 
    protected '_joinFields' => 
    array (size=0) 
     empty 
    protected '_conn' => 
    object(Varien_Db_Adapter_Pdo_Mysql)[90] 
     protected '_transactionLevel' => int 0 
     protected '_connectionFlagsSet' => boolean true 
     protected '_ddlCache' => 
     array (size=1) 
      1 => 
      array (size=1) 
       ... 
     protected '_bindParams' => 
     array (size=2) 
      ':_mage_bind_var_1' => string '2012-09-26 14:11:06' (length=19) 
      ':_mage_bind_var_2' => string '2012-09-26 14:11:06' (length=19) 
     protected '_bindIncrement' => int 2 
     protected '_debug' => boolean false 
     protected '_logQueryTime' => float 0.05 
     protected '_logAllQueries' => boolean false 
     protected '_logCallStack' => boolean false 
     protected '_debugFile' => string 'var/debug/sql.txt' (length=17) 
     protected '_debugIoAdapter' => null 
     protected '_debugTimer' => int 0 
     protected '_cacheAdapter' => 
     object(Varien_Cache_Core)[13] 
      protected '_backend' => 
      object(Zend_Cache_Backend_File)[10] 
       ... 
      protected '_options' => 
      array (size=9) 
       ... 
      protected '_specificOptions' => 
      array (size=0) 
       ... 
      private '_lastId' (Zend_Cache_Core) => string 'd11_DB_PDO_MYSQL_DDL_googleoptimizer_code_1' (length=43) 
      protected '_extendedBackend' => boolean true 
      protected '_backendCapabilities' => 
      array (size=6) 
       ... 
     protected '_isDdlCacheAllowed' => boolean true 
     protected '_pdoType' => string 'mysql' (length=5) 
     protected '_numericDataTypes' => 
     array (size=16) 
      0 => int 0 
      1 => int 1 
      2 => int 2 
      'INT' => int 0 
      'INTEGER' => int 0 
      'MEDIUMINT' => int 0 
      'SMALLINT' => int 0 
      'TINYINT' => int 0 
      'BIGINT' => int 1 
      'SERIAL' => int 1 
      'DEC' => int 2 
      'DECIMAL' => int 2 
      'DOUBLE' => int 2 
      'DOUBLE PRECISION' => int 2 
      'FIXED' => int 2 
      'FLOAT' => int 2 
     protected '_defaultStmtClass' => string 'Zend_Db_Statement_Pdo' (length=21) 
     protected '_config' => 
     array (size=12) 
      'model' => string 'mysql4' (length=6) 
      'initStatements' => string 'SET NAMES utf8' (length=14) 
      'type' => string 'pdo_mysql' (length=9) 
      'host' => string 'localhost' (length=9) 
      'username' => string 'root' (length=4) 
      'password' => 
      object(Mage_Core_Model_Config_Element)[34] 
       ... 
      'dbname' => string 'eyt' (length=3) 
      'active' => string '1' (length=1) 
      'charset' => null 
      'persistent' => boolean false 
      'options' => 
      array (size=3) 
       ... 
      'driver_options' => 
      array (size=0) 
       ... 
     protected '_fetchMode' => int 2 
     protected '_profiler' => 
     object(Zend_Db_Profiler)[20] 
      protected '_queryProfiles' => 
      array (size=0) 
       ... 
      protected '_enabled' => boolean false 
      protected '_filterElapsedSecs' => null 
      protected '_filterTypes' => null 
     protected '_defaultProfilerClass' => string 'Zend_Db_Profiler' (length=16) 
     protected '_connection' => 
     object(PDO)[17] 
     protected '_caseFolding' => int 0 
     protected '_autoQuoteIdentifiers' => boolean true 
     protected '_allowSerialization' => boolean true 
     protected '_autoReconnectOnUnserialize' => boolean false 
    protected '_select' => 
    object(Varien_Db_Select)[324] 
     protected '_bind' => 
     array (size=0) 
      empty 
     protected '_adapter' => 
     object(Varien_Db_Adapter_Pdo_Mysql)[90] 
      protected '_transactionLevel' => int 0 
      protected '_connectionFlagsSet' => boolean true 
      protected '_ddlCache' => 
      array (size=1) 
       ... 
      protected '_bindParams' => 
      array (size=2) 
       ... 
      protected '_bindIncrement' => int 2 
      protected '_debug' => boolean false 
      protected '_logQueryTime' => float 0.05 
      protected '_logAllQueries' => boolean false 
      protected '_logCallStack' => boolean false 
      protected '_debugFile' => string 'var/debug/sql.txt' (length=17) 
      protected '_debugIoAdapter' => null 
      protected '_debugTimer' => int 0 
      protected '_cacheAdapter' => 
      object(Varien_Cache_Core)[13] 
       ... 
      protected '_isDdlCacheAllowed' => boolean true 
      protected '_pdoType' => string 'mysql' (length=5) 
      protected '_numericDataTypes' => 
      array (size=16) 
       ... 
      protected '_defaultStmtClass' => string 'Zend_Db_Statement_Pdo' (length=21) 
      protected '_config' => 
      array (size=12) 
       ... 
      protected '_fetchMode' => int 2 
      protected '_profiler' => 
      object(Zend_Db_Profiler)[20] 
       ... 
      protected '_defaultProfilerClass' => string 'Zend_Db_Profiler' (length=16) 
      protected '_connection' => 
      object(PDO)[17] 
       ... 
      protected '_caseFolding' => int 0 
      protected '_autoQuoteIdentifiers' => boolean true 
      protected '_allowSerialization' => boolean true 
      protected '_autoReconnectOnUnserialize' => boolean false 
     protected '_parts' => 
     array (size=12) 
      'straightjoin' => boolean false 
      'distinct' => boolean false 
      'columns' => 
      array (size=2) 
       ... 
      'union' => 
      array (size=0) 
       ... 
      'from' => 
      array (size=2) 
       ... 
      'where' => 
      array (size=0) 
       ... 
      'group' => 
      array (size=0) 
       ... 
      'having' => 
      array (size=0) 
       ... 
      'order' => 
      array (size=0) 
       ... 
      'limitcount' => null 
      'limitoffset' => null 
      'forupdate' => boolean false 
     protected '_tableCols' => 
     array (size=0) 
      empty 
    protected '_cacheConf' => null 
    protected '_idFieldName' => null 
    protected '_bindParams' => 
    array (size=0) 
     empty 
    protected '_data' => null 
    protected '_fetchStmt' => null 
    protected '_items' => 
    array (size=0) 
     empty 
    protected '_itemObjectClass' => string 'Mage_Catalog_Model_Product' (length=26) 
    protected '_orders' => 
    array (size=0) 
     empty 
    protected '_filters' => 
    array (size=0) 
     empty 
    protected '_isFiltersRendered' => boolean false 
    protected '_curPage' => int 1 
    protected '_pageSize' => boolean false 
    protected '_totalRecords' => null 
    protected '_isCollectionLoaded' => null 
    protected '_cacheKey' => null 
    protected '_cacheTags' => 
    array (size=0) 
     empty 
    protected '_cacheLifetime' => int 86400 
    protected '_flags' => 
    array (size=0) 
     empty 
+2

不要做'$類=新Mage_Catalog_Model_Category();' - 做'$類=法師:: getModel( '目錄/類');相反。如果任何人或任何模塊正在重寫這個類,這是至關重要的。 – benmarks

+0

謝謝修正。 –

回答

13

的var_dump得到你需要將其添加到選擇產品名稱:

$_productCollection = $category->getProductCollection() 
    ->addAttributeToSelect('name'); 

此外,如果您提供您的代碼那麼你就沒有初始化$_helper變量,它將會拋出一個錯誤:

$_helper = Mage::helper('catalog/output'); 
+0

嗨,它在文件homepage.phtml中,我認爲它是一個模板,或者至少類似於1列,2列,3列。謝謝,我會嘗試以上。什麼是list.phtml(我從哪裏獲取代碼)會調出興趣來獲取所需的所有值?例如。 $ _productCollection = $ category-> getProductCollection() - > addAttributeToSelect('name') - > addAttributeToSelect('many_other_things'); –

+0

啊,是的,我不相信我已經安裝了$ _helper。我在哪裏/如何安裝?歡呼聲 –

+0

請看更新的答案 –

4

試試下面的代碼必須工作:

$collection = Mage::getModel('catalog/product') 
         ->getCollection() 
         ->addAttributeToSelect('*'); 

foreach ($collection as $product) { 


    echo $product->getName() . "<br />"; 

    } 
+0

你可以通過Magic Getter和Setter方法獲得你的所有屬性:-) – Chiragit007