我在Magento中为类别创建了自定义属性;但奇怪的是,我无法把它抓到前端。自昨天以来,我一直试图找到解决方案,但无济于事。
我在不同论坛上看过多个帖子,包括SO。我尝试了多种解决方案。例如:
Mage::registry('current_category')->getAttributes()
还有以下内容:
Mage::getSingleton('catalog/layer')->getCurrentCategory()->getAttributes()
我认为我做同样的事情。问题是,它们都返回了以下错误,我似乎无法弄清楚:
致命错误:调用未定义的方法 Mage_Catalog_Model_Resource_Category_Flat :: loadAllAttributes()in X:.... \ project \ app \ code \ core \ Mage \ Catalog \ Model \ Category.php就行了 289
此外,尝试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,
));
我的问题是:
答案 0 :(得分:0)
如果打开平面目录,Magento中的集合页面将使用平面表。
如果添加任何额外的属性,将不在平台中。
索引是更新平面表的方法。
因此,当您为新创建的属性添加了重新索引列并添加了数据时。