Opencart 2:在产品插入时将当前记录的管理员id添加到oc_product表中


Opencart 2 : Add currently logged admin id to oc_product table on product insert

我想监控哪个仪表板用户("admin")向数据库添加了新产品。

我考虑的解决方案只是在函数addProduct()下的admin > model > catalog > product.tpl下添加另一个insert,它将用户id添加到之前在oc_product下添加的自定义列中。

$userID = // currently logged in
public function addProduct($data) {
$this->event->trigger('pre.admin.product.add', $data);
$this->db->query("INSERT INTO " . DB_PREFIX . "product SET addedby = $userID, .......");
.......
}

我现在唯一的问题是如何调用/获取该文件中当前记录的管理员id(型号/目录/产品.tpl)

这就是我的想法,如果这个想法完全错误,请写一些更好的解决方案。

最好创建另一个表来存储这些信息,因为这样可以避免更改核心表。在新表中存储user_id和product_id,并将product_id设置为主键。现在,您将能够根据需要通过在product_id匹配的基础上连接这两个表来获取这些数据。

  • 这个想法是正确的(至少对我来说,这就是我要做的)
  • 您可以通过呼叫$this->user->getId()获得当前登录管理员的id
  • 将此代码片段$userID = $this->user->getId()添加到addProduct函数中,而不是添加到类声明中
  • product表中没有这样一个名为added_by的列,您必须更改表结构并添加它