2012-10-25 14 views
7

जब एक का उपयोग करने की कोशिश कर इस त्रुटि हो रही है एक कस्टम विषय के अंदर कस्टम फिल्टर।Magento - गंभीर त्रुटि: एक सदस्य समारोह getBackend() एप्लिकेशन/कोड/कोर में एक गैर-वस्तु पर करने के लिए कॉल/दाना/EAV/मॉडल/इकाई/Abstract.php लाइन पर 816

मैं नई विशेषता "is_featured" और इसके एक विशेषता सेट में स्थापना की है। मैं एक उत्पाद है कि यह सौंपा रूप में चित्रित किया (हां/नहीं पसंद)

मेरे मुख पृष्ठ (सीएमएस खंड में) के बाद "पैनल"

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

featured_list.phtml इस तरह दिखता है सहित बनाया:

<?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; ?> 

ऐसा लगता है कि यह ब्लॉक ब्लॉक की शुरुआत में संग्रह के साथ है। (मैं हटा सकते हैं इस पैनल के मुख पृष्ठ के रूप में, और साइट ठीक लोड करता है)

मैं बहुत यकीन है कि मैं

(इस विषय (केवल कस्टम से एक होने की is_featured दिखता है) सभी का उल्लेख गुण उपलब्ध कर रहा हूँ विरासत में मिला, इसलिए मैं 100% नहीं जानता हूं कि यह कैसे काम करता है! मैं इसे आसानी से कॉपी कर रहा हूं)

उत्तर

10

मैं वर्तमान में 1.7 का उपयोग कर रहा हूं, और जब भी मुझे "किसी सदस्य फ़ंक्शन को कॉल करें (बैकएंड) एक गैर-ऑब्जेक्ट ... "त्रुटि, आमतौर पर गलत मॉडल को कॉल करने या उस संग्रह में मौजूद एक विशेषता को फ़िल्टर लागू करने के कारण होता है जो उस संग्रह में मौजूद नहीं है।

अपने कोड का परीक्षण करने के बाद, वह इस मुद्दे के बिना काम करता है (ज्यादातर ...) अगर मैं इस लाइन बाहर टिप्पणी:

->addAttributeToFilter('is_featured', 1) 

मेरे सुझाव है दोबारा जांच करें कि उत्पाद विशेषता आईडी अपने वर्तमान स्थापना पर मौजूद है , और यह सही दायरे पर सेट है (ग्लोबल/सही स्टोर?)।

इसे सही ढंग से मौजूद है, तो एक और समाधान, मैन्युअल रूप से चयनित विशेष रुप से प्रदर्शित उत्पादों की है, है आप का उपयोग कर की कोशिश करना चाहते हो सकता है: देखते हैं कि अगर यह ठीक करता है

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 

और।