1

几天后我放弃了这个——我想不通。

这是我的 OpenCart XML 提要代码的相关部分:

代码:

     $this->load->model('catalog/category');

     $this->load->model('catalog/product');

     $this->load->model('tool/image');

     $products = $this->model_catalog_product->getProducts();

     foreach ($products as $product) {
        if ($product['description']) {
           $output .= '<PRODUCT>';
           $output .= '<NAME>' . $product['name'] . '</NAME>';
           $output .= '<DESCRIPTION>' . $product['description'] . '</DESCRIPTION>';
           $output .= '</PRODUCT>';

我希望能够仅显示某些类别的产品,例如category_id.

假设我想展示类别 (id) 中的产品12应该进行哪些更改?

我正在使用 OpenCart 1.5.1.3

4

1 回答 1

0

如果您查看该getProducts()函数,您会发现它接受array作为参数。您可以将过滤器参数传递给它,并获取特定类别、制造商等的产品。参数是:

filter_category_id
filter_sub_category
filter_filter
filter_name
filter_tag
filter_description
filter_manufacturer_id

[编辑:基于评论 1:示例]

例如,创建一个要作为参数传递的数组(从类别 id 10 及其子类别中获取所有产品)

$data = array(
    'filter_category_id' => '10',
    'filter_sub_category' => 'true'
);

然后打电话

getProducts($data);

或内联

getProducts(array('filter_category_id' => '10'));

如果您需要多个类别,请分别获取它们然后加入它们:

$set1 = $this->model_catalog_product->getProducts(array('filter_category_id' => '10'));
$set2 = $this->model_catalog_product->getProducts(array('filter_category_id' => '11'));
$products = $set1 + $set2;
...
于 2013-04-23T05:53:36.580 回答