0

我在 Magento 中为类别创建了一个自定义属性;但奇怪的是,我无法将它抓取到前端。从昨天开始,我一直在尝试解决这个问题,但无济于事。

我在不同的论坛上看到了多个主题,包括 SO。我尝试了多种解决方案。例如:

Mage::registry('current_category')->getAttributes()

还有以下内容:

Mage::getSingleton('catalog/layer')->getCurrentCategory()->getAttributes()

我相信它会做同样的事情。问题是,它们都返回以下我似乎无法弄清楚的错误:

致命错误:在 X:....\project\app\code\core\Mage\Catalog\Model\Category.php 第 289 行调用未定义的方法 Mage_Catalog_Model_Resource_Category_Flat::loadAllAttributes()

此外,尝试 var_dump getData() 不会返回此属性,即使它(该属性)确实存在于“管理类别”下的后端,即使它可以修改和保存并保持上次保存的方式当您刷新页面时。我还尝试了多种解决方案,建议使用循环遍历所有类别并获取属性;但这也没有用。

打印以下内容:

Mage::registry('current_category')->debug()

正如另一个线程建议的那样,没有返回我创建的属性,但它返回了默认属性。

我检查了多个站点,以确保在创建属性期间没有遗漏任何关键内容,到目前为止,我还没有发现任何遗漏的内容。

创建属性时;使用以下参数:

$this->addAttribute('catalog_category', 'used_by', array(
    'group'         => 'General',
    'input'         => 'textarea',
    'type'          => 'text',
    'label'         => 'Used by',
    'backend'       => '',
    'visible'       => true,
    'required'      => false,
    'wysiwyg_enabled' => true,
    'visible_on_front' => true,
    'is_html_allowed_on_front' => true,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
));

我的问题是:

  1. 如何获取我制作的自定义属性并在前端使用它?
  2. 要使属性在后端和前端正常运行,必须具备哪些参数?
4

1 回答 1

0

如果打开平面目录,Magento 中的集合页面将使用平面表。

如果添加了任何其他属性,则平面表中将不存在。

索引是更新平面表的方式。

因此,当您为新创建的属性重新索引列并填充数据时。

于 2013-07-05T18:10:08.900 回答