的Magento - 致命错误:调用一个成员函数getBackend()在应用程序/代码/核心/法

2019-08-01 21:57发布

试图用一个自定义过滤器自定义主题内时,遇到了这个错误。

我已经建立了其在设置属性的新属性“is_featured”和。 我做了分配它作为特色产品(是/否选择)

我的主页(CMS中的部分),包括下面的“面板”

<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%它是如何工作的熟悉!我只是跨复制它)

Answer 1:

目前我使用的是1.7,每当我得到的“调用一个成员函数getBackend()一个非对象...”错误,这通常是因为调用了错误的模型,或者应用一个过滤器的属性,该属性该集合中不存在。

测试你的代码后,它的工作原理没有问题(主要是...)如果我注释掉这一行:

->addAttributeToFilter('is_featured', 1)

我的建议是要仔细检查你目前的安装中存在的产品属性ID,并将其设置为正确的范围(全球/正确的商店?)。

如果它确实存在正确的,另一种解决方案是手动选择的特色产品,您可能需要使用尝试:

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

并看看是否能解决它。



Answer 2:

In my case it helped to out comment this line (Line 765)

$customer->changeResetPasswordLinkCustomerId($newResetPasswordLinkCustomerId);

in

/app/code/core/Mage/Customer/controllers/AccountController.php

I think it could be also important to check weather the update script updated your database correctly. F.e. upgrade-1.6.2.0.6-1.6.2.0.7.php creates a table called rp_customer_id



文章来源: Magento - Fatal error: Call to a member function getBackend() on a non-object in app/code/core/Mage/Eav/Model/Entity/Abstract.php on line 816