【问题标题】:Opencart Displaying min option priceOpencart 显示最低期权价格
【发布时间】:2014-01-07 12:19:43
【问题描述】:

我想要做的是在模型中执行查询,返回具有特定产品 ID 的所有选项的所有价格,然后在控制器中将其放入数组中,然后在视图中回显最小价格,我我不确定我哪里出错了我知道我发布了一个类似的问题,但我认为这可以更好地解释它。

型号

public function getMin() {

$queryMin = $this->db->query("SELECT  * FROM  `oc_product_option_value` WHERE product_id = '" . (int)$product_id . "'");
if (isset($queryMin->row['price'])) {
        return $queryMin->row['price'];
    } else {
        return 0;   
    }

}

控制器

$minimum = $this->model_catalog_product->getMin();
                $this->data['minimum'] = array();
                foreach ($minimum as $minimums) {
                    $this->data['minimum'][] = array(
                    'price' => $minimum['price']
                    );
                    }

查看

<?php if(isset($this->data['minimum'])){ ?>
    <?php $min = min($this->data['minimum']); ?>
    <?php echo $min ?>
    <?php   }else{ ?>
    <?php   echo $price; ?>
    <?php   } ?>

【问题讨论】:

    标签: php mysql opencart


    【解决方案1】:

    问题在于您的模型方法(主要是查询)。

    getMin() 方法应该是:

    $query = $this->db->query("
        SELECT MIN(price) min_option_price
        FROM " . DB_PREFIX . "product_option_value pov 
        LEFT JOIN " . DB_PREFIX . "option o ON o.option_id = pov.option_id 
        LEFT JOIN " . DB_PREFIX . "product_option po ON po.option_id = o.option_id
        WHERE po.product_id = " . (int)$product_id);
    
    return (int) $query->row['min_option_price'];
    

    然后在你的控制器中你会得到这样的:

    $minimum = $this->model_catalog_product->getMin($this->request->get['product_id']);
    $this->data['minimum'] = $this->currency->format($this->tax->calculate($minimum, $product_info['tax_class_id'], $this->config->get('config_tax')));
    

    现在您可以直接在您的模板中使用它:

    <?php if($minimum) { ?>
    Minimum price is: <?php echo $minimum; ?>
    <?php } else { ?>
    Price is: <?php echo $price; ?>
    <?php } ?>
    

    我强烈建议将模型的方法从 getMin() 重命名为例如getProductOptionMinPrice().

    【讨论】:

    • 它目前只返回 1 而不是价格是只返回是 $minimum 中有数据吗?
    • 不,它应该返回产品附带的所有选项的最低价格。检查$minimum变量中的值,可能在格式化时更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2016-10-09
    • 2021-12-17
    相关资源
    最近更新 更多