在Magento中获取自定义类别属性的值

时间:2012-10-25 12:20:38

标签: php magento magento-1.5

我已使用以下代码为我的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);

等但是被卡住了。

有谁知道我如何检索这些数据?

2 个答案:

答案 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');