在Opencart中获取属性值

时间:2018-03-03 18:54:27

标签: php opencart opencart2.3

如何获取特定属性的值?我使用代码:

$attributes = $this->model_catalog_product->getProductAttributes($product['product_id']);                 
if (!empty($attributes)) {
    foreach ($attributes as $attr) {  
        if($attr['attribute_id'] == 15) {              
            $attr_text = $attr['text'] ;
            $attr = $this->dd->createElement('param');
            $attr->setAttribute('code', 'color');
            $attr->setAttribute('name', 'Color');
            $attr->appendChild($this->dd->createTextNode($attr_text));
            $e->appendChild($attr);
        }
    }
}

但它不起作用。如何在OpenCart 2.3中获取变量的值

$attr['text']

1 个答案:

答案 0 :(得分:0)

首先,从getProductAttributes()获取新的分组属性,您需要通过ID在模型中为属性信息创建新函数。

public function getProductAttributeById($product_id, $attribute_id) {
    $product_attribute_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' AND attribute_id = '" . (int)$attribute_id . "'");

    return $query->row;
}

代码未经过测试!!!

然后你就这样使用它:

$attributes_by_id = $this->model_catalog_product->getProductAttributeById($product['product_id'], 15);                 
if (!empty($attributes_by_id )) {           
     $attr_text = $attributes_by_id ['text'] ;
     $attr = $this->dd->createElement('param');
     $attr->setAttribute('code', 'color');
     $attr->setAttribute('name', 'Color');
     $attr->appendChild($this->dd->createTextNode($attr_text));
     $e->appendChild($attr);
} else {
   // default code
}