如何获取特定属性的值?我使用代码:
$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']
答案 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
}