Magento自动将对象保存为EAV值

时间:2014-02-25 14:28:30

标签: php mysql magento zend-framework entity-attribute-value

是否有可能让magento自动存储产品EAV值对象并在收集加载或单个产品加载过程中自动检索它们?

所以简而言之,是否有可能拥有magento商店产品属性对象和模型。

public function getData($key='', $index=null)
{
    if (''===$key) {
        return $this->_data;
    }

    $default = null;

    // accept a/b/c as ['a']['b']['c']
    if (strpos($key,'/')) {
        $keyArr = explode('/', $key);
        $data = $this->_data;
        foreach ($keyArr as $i=>$k) {
            if ($k==='') {
                return $default;
            }
            if (is_array($data)) {
                if (!isset($data[$k])) {
                    return $default;
                }
                $data = $data[$k];
            } elseif ($data instanceof Varien_Object) {
                $data = $data->getData($k);
            } else {
                return $default;
            }
        }
        return $data;
    }

    // legacy functionality for $index
    if (isset($this->_data[$key])) {
        if (is_null($index)) {
            return $this->_data[$key];
        }

        $value = $this->_data[$key];
        if (is_array($value)) {
            //if (isset($value[$index]) && (!empty($value[$index]) || strlen($value[$index]) > 0)) {
            /**
             * If we have any data, even if it empty - we should use it, anyway
             */
            if (isset($value[$index])) {
                return $value[$index];
            }
            return null;
        } elseif (is_string($value)) {
            $arr = explode("\n", $value);
            return (isset($arr[$index]) && (!empty($arr[$index]) || strlen($arr[$index]) > 0)) ? $arr[$index] : null;
        } elseif ($value instanceof Varien_Object) {
            return $value->getData($index);
        }
        return $default;
    }
    return $default;
} 

1 个答案:

答案 0 :(得分:0)

尝试

$product = Mage::getModel('catalog/model')->load($product_id)