【问题标题】:Opencart 2.0 Category Specific EchoOpencart 2.0 类别特定回声
【发布时间】:2025-12-16 10:35:02
【问题描述】:

我试图在 Opencart 2.0 中实现特定类别的回显,但不知何故我无法让它工作。我仍然是 PHP 的菜鸟,OC 并没有让它变得更好!

我想要生成某个回显,如果类别是 X,那么 AAA,如果是 Y,那么 BBB,否则是 CCC,但是我如何让 OC2 回显类别 ID(X/Y/Z)?此外,一个产品可以在多个类别中,但不能同时在 X、Y 或 Z 中,因此在类别表中查询产品会返回同一产品的多行。例如

product_id    category_id
1111          X
1111          D
1111          M
1112          Y
1112          D
1113          Z

我不知道这听起来是否只是胡言乱语,但非常感谢任何帮助。

基本上我想要实现的是:

IF category = X 
THEN URL = /index.php?egg=1111

IF category = Y 
THEN URL = /index.php?meat=1111

IF category = Z 
THEN URL = /index.php?fish=1111

编辑

我尝试做的是这样的:

SELECT mv_product.product_id, mv_product_to_category.category_id FROM mv_product LEFT OUTER JOIN mv_product_to_category ON mv_product.product_id = mv_product_to_category.product_id WHERE mv_product_to_category.category_id IN(20,25,34)

技术上做的是查询特定productid的CategoryId,然后检查这个categoryid是否属于x、y或z,然后相应地回显。

这是一个正确的方向吗?

【问题讨论】:

    标签: php mysql opencart2.x


    【解决方案1】:

    你可以按照 Opencart 的 url helper 来做到这一点,

    如下所示循环查询结果并使用 url helper 形成 href,

    $url='';
    foreach ($results as $result) {
        $path=$result['cat_id'];
        $this->data['products'][] = array(
            'product_id'  => $result['product_id'],
            'name'        => $result['name'],
            'description' => $result['description'],
            'href'        => $this->url->link('product/product', 'path=' . $path . '&product_id=' . $result['product_id'] . $url,'SSL')
       );
    }
    

    在路径参数中传递类别 ID。不要忘记在您的管理端启用 seo url。

    【讨论】:

    • 谢谢你,但我不确定这是否是我想要实现的。这很可能是我缺乏 PHP 知识的原因。我只想根据类别 ID 生成 URL 变量参数。 URL 的其他变体是使用静态 url + $product_id 生成的
    • Mani,我有点不确定如何执行此操作。就像我之前说的,我是菜鸟。我已请其他人尝试此操作,并会在我有答案后立即回复。