【问题标题】:OpenCart - Cannot pass data between MVCOpenCart - 无法在 MVC 之间传递数据
【发布时间】:2021-03-17 11:49:44
【问题描述】:

我正在尝试通过产品控制器从数据库中传递一些数据,最后在产品视图中传递。 问题是我尝试了许多不同的情况,但没有任何效果。 简而言之,我想将客户的区域 ID 从 oc_address 表中检索到变量 $zone 上的产品页面中。

catalog\model\catalog\product.php(型号)

public function getZoneFromCustomer()
{
 $zone = array();
 $this->db->query("SELECT zone_id FROM " . DB_PREFIX . "address WHERE address_id = '". (int)$this->customer->getAddressId() ."'");
     
foreach ($query->rows as $result) {
        $zone = $result['zone_id'];
}

return $zone;
}

目录\控制器\产品\product.php(控制器)

$data['zone'] = $this->model_catalog_product->getZoneFromCustomer();

catalog\view\theme\default\template\product\product.tpl(视图)

if(isset($zone))
{
   echo $zone; 
}

OpenCart 版本:2.0.3.1

Notice: Undefined variable: zone in ...

【问题讨论】:

  • 错字? $this->db-query$this->db->query
  • 不应该getZoneFromCustomer()返回一些东西吗?
  • 是的,抱歉,这是一个错字。我也试过 return $this->db->query("SELECT zone_id FROM " . DB_PREFIX . "address WHERE address_id = '6'");但没有任何改变
  • 能否在foreach循环上方添加$this->log->write(json_encode($query->rows));,调用后查看日志?

标签: php model-view-controller opencart2.x


【解决方案1】:

我找到了解决方案。 Opencart 将修改后的文件的副本保存到系统文件夹中名为“修改”的文件夹中,并覆盖默认代码。如果您从那里删除这些文件,则会恢复正常。

【讨论】:

  • 你不应该只删除文件,而是应该从管理区域“刷新”修改缓存,你可能会删除破坏功能的模组
猜你喜欢
  • 2014-11-08
  • 1970-01-01
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2022-09-28
  • 2020-07-05
相关资源
最近更新 更多