我已使用以下代码为我的Magento安装添加了自定义类别属性:
<?php
// initialize magento environment for 'default' store
require_once 'app/Mage.php';
Mage::app('default');
echo "initialising";
echo runAdd();
echo "finishing";
function runAdd()
{
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
// below code will add text attribute
$setup->addAttribute('catalog_category', 'test_field', array(
'group' => 'General',
'input' => 'text',
'type' => 'varchar',
'label' => 'a new text field',
'backend' => '',
'visible' => 1,
'required' => 0,
'user_defined' => 1,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));
}
我实际上很难检索到我在后端设置的值。我尝试了各种变体:
$_category = Mage::getModel('catalog/category')->load(1000);
$data = $_category->getData();
$atts= $_category->getAttributes();
var_dump($data );
var_dump($atts);
等但是被卡住了。
有谁知道我如何检索这些数据?
答案 0 :(得分:4)
您不应在独立脚本中更新数据库,但必须使用升级脚本......
如果你有,你不必手动实例化安装程序,也不会实例化坏的安装程序:你必须使用Mage_Catalog_Model_Resource_Setup
(或Mage_Catalog_Model_Resource_Eav_Mysql4_Setup
,具体取决于您的magento版本),因为Mage_Catalog使用config.xml中配置的自定义安装程序类:
<resources>
<catalog_setup>
<setup>
<module>Mage_Catalog</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
</catalog_setup>
</resources>
我建议您在模块config.xml中对此进行调整,并使用安装/升级脚本正确修改数据库。
答案 1 :(得分:4)
你可以写下面一行可能会对你有帮助
$_category = Mage::getModel('catalog/category')->load(1000)->getData('test_field');