2012-10-25 8 views
7

Kullanmaya çalışırken bu hatayı alma özel bir tema içinde özel filtre.Magento - Ölümcül hata: <a1> Uygulama</ a1> nesnesinde nesne/nesne/çekirdek/Mage/Eav/Model/Entity/Abstract.php</ a1> nesnesinde getBackend() üye işlev çağrısı 816

"is_featured" yeni niteliğini ve onun bir özellik kümesinde oluşturdum. Ben (evet/hayır seçim) (CMS bölümünde)

Evim sayfası aşağıdaki "panelinde"

<block type="catalog/product" name="catalog.product_featured_list" template="catalog/product/featured_list.phtml" after="-"/> 

featured_list.phtml şuna benzer dahil olduğu özellikli olarak atanan bir ürün yaptı:

<?php 
$storeId = Mage::app()->getStore()->getId(); 
$_productCollection=Mage::getResourceModel('reports/product_collection') 
     ->addAttributeToSelect(array('name', 'url', 'small_image', 'price', 'short_description')) 
     ->addAttributeToFilter('is_featured', 1) 
     ->addAttributeToFilter('status', 1) 
     ->setPageSize(3) 
     ->setStoreId($storeId) 
     ->addStoreFilter($storeId); 
$_helper = $this->helper('catalog/output'); 
?> 
<?php if($_productCollection->count()): ?> 

<section class="content-box clearfix"> 
    <header> 
     <h2>Featured products</h2> 
    </header> 
    <ul class="featured-products"> 
      <?php foreach ($_productCollection as $_product): ?> 
      <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?> 
      <li> 
       <h3> 
        <a href="<?php echo $_product->getProductUrl(); ?>" title="<?php echo $_productNameStripped; ?>"> 
         <?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?> 
        </a> 
       </h3> 
       <a href="<?php echo $_product->getProductUrl(); ?>" title="<?php echo $_productNameStripped; ?>"> 
        <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(212); ?>" width="200" height="200" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /> 
       </a> 
        <div> 
         <ul class="clearfix"> 
          <li>From &pound;<?php echo number_format($_product->price, 2) ?></li> 
          <li> 
           <?php 
           $desct = nl2br($this->htmlEscape($_product->getShortDescription())); 
           $desct = strip_tags($_product->getShortDescription()); 
           ?> 
           <p> 
            <? 
            echo Mage::helper('core/string')->truncate($desct, '100'); 
            ?> 
            <a href="<?php echo $_product->getProductUrl(); ?>" title="<?php echo $_productNameStripped; ?>"> 
             <?php echo $this->__('more details'); ?> 
            </a> 
           </p> 
          </li> 
          <li> 
           <form action="<?php echo $this->helper('checkout/cart')->getAddUrl($_product); //echo $this->getAddToCartUrl($_product); ?>" class="product-list-add-to-cart" method="get" id="product_addtocart_form_<?php echo $_product->getId()?>"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>> 
            <?php if(!$_product->isGrouped()): ?> 
            <label for="qty"><?php echo $this->__('Qty') ?>:</label> 
            <input type="text" class="input-text qty" name="qty" id="qty" maxlength="12" value="<?php echo ($this->getMinimalQty($_product)?$this->getMinimalQty($_product):1) ?>" /> 
            <input type="hidden" name="product" value="<?php echo $_product->getId()?>" /> 
            <?php endif; ?> 
            <button type="button" class="button" onclick="this.form.submit()"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> 
           </form> 
          </li> 
         </ul> 
        </div> 
      </li> 
     <?php endforeach; ?> 
    </ul> 
</section> 
<?php endif; ?> 

Sorun, bloğun başlangıcındaki koleksiyonla ilgili gibi görünüyor.

ben

(bu tema (yalnızca özel biri olduğu is_featured görünüyor) mevcuttur tüm söz nitelikler var eminim (Bu paneli ana sayfasını oluşturan kaldırabilir ve site ince yükler) devralındı, bu yüzden nasıl çalıştığını% 100 deneyimli değilim! Ben sadece kopyalamak için)

cevap

10

Şu anda 1.7 kullanıyorum ve ne zaman "getBackend() üye işlevine çağırın" nesne olmayan ... "hata, genellikle yanlış modeli çağırmaktan veya bu koleksiyonda bulunmayan bir özniteliğe bir filtre uygulamaktan kaynaklanır.

kodunuzu test ettikten sonra, bu sorun olmadan çalışır (çoğunlukla ...) Ben bu satırı dışarı yorum yaparsanız:

->addAttributeToFilter('is_featured', 1) 

Önerim etmektir ürün özelliği kimliği geçerli yüklemesinde varolduğunu tekrar kontrol ve doğru kapsam için ayarlanır (Global/Doğru Mağaza?).

Mage::getModel('catalog/product')->getCollection() 
    ->addAttributeToSelect(array('name', 'url', 'small_image', 'price', 'short_description')) 
    ->addFieldToFilter('is_featured', 1) 
    ->addFieldToFilter('status', 1) 
    ->addStoreFilter($storeId) 
    ->clear()->setPageSize(3)->load(); //setPageSize = How Many Products To Show 

Ve işte bu çözülüp çözülmediğini görmek:

doğru versiyonu varsa

, başka bir çözüm kullanmakta deneyebilirsiniz, özellikli ürünler elle seçmiş etmektir.