1

我在模板/模块/latest.tpl 中有以下代码

      <?php foreach ($products as $product) { 

       }

      ?>

此代码显示所有产品,但我想显示类别 id 63 的产品。

请有人指导我。谢谢

4

1 回答 1

4

我希望你已经明白这个问题是完全错误的。

基本上你想按 .TPL 中的类别 ID 排序!!!虽然是可能的,但不是正确的方法。

“OpenCart 的设计遵循 MVC 设计模式。MVC(模型视图控制器)的组件可以分解如下。”

M - 模型 这是您将直接与数据库交互的地方,将数据提取出来并将其重组为适合您前端的格式。这通常主要由数据库查询组成,仅此而已。如果您习惯于编写 mySQL 查询,那么您会喜欢 OpenCart 提供的访问方式以继续执行此操作。OpenCart 不使用 ORM,但允许您编写直接的数据库查询。

V - 查看(您正在使用什么)。这是 MVC 模式的显示面。M 和 C的想法是尽可能多地从视图中提取逻辑,这意味着更简单的模板。为了重新设计您的整个商店,您只需修改 View 组件,M、C 和 L 将保持不变。OpenCart 中的视图文件具有.tpl后缀。

C - Controller 在这里,您将从Model 中提取数据,与您的安装或模块一起保存的任何配置设置,然后通过选择适当的视图文件来呈现它。

看到我放在 BOLD 中的内容应该会给你这个想法。如果还是不明白,试着理解这句话写得不好:

“模型是从数据库中获取信息,控制器是负责将数据放在适当的变量中的人,而视图负责......视图。基本上视图应该只是呈现从模型中获得的控制器中的准备数据”。

来源:http ://docs.opencart.com/display/opencart/Introduction+to+MVC-L

现在,为了解决你的问题,我会给你一个建议

在控制器/目录/x.php 中添加一个函数,

$data = array(
        'filter_category_id' => $selected_category 
    );
$results = $this->model_catalog_product->getProducts($data);

这应该可以解决问题。告诉我是否工作。

于 2014-03-18T12:47:29.243 回答