Php Opencart 2:将当前记录的管理员id添加到product insert上的oc_product表中

Php Opencart 2:将当前记录的管理员id添加到product insert上的oc_product表中,php,opencart,opencart2.x,Php,Opencart,Opencart2.x,我想监控哪个仪表板用户(“管理员”)向数据库添加了新产品 我考虑的解决方案是在admin>model>catalog>product.tpl下的functionaddProduct()下添加另一个insert,它将用户id添加到之前在oc\u product下添加的自定义列中 $userID = // currently logged in public function addProduct($data) { $this->event->trigger('pre.admin.p

我想监控哪个仪表板用户(“管理员”)向数据库添加了新产品

我考虑的解决方案是在
admin>model>catalog>product.tpl
下的function
addProduct()
下添加另一个
insert
,它将用户id添加到之前在
oc\u 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, .......");

.......

}
我现在唯一的问题是如何在这个文件(model/catalog/product.tpl)中调用/获取当前记录的管理员id

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

  • 这个想法是正确的(至少对我来说,我打算这样做)
  • 您可以通过调用
    $this->user->getId()
  • 将此代码片段
    $userID=$this->user->getId()
    添加到
    addProduct
    函数中,而不是类声明中
  • product
    表中没有名为
    added\u by
    的列,您必须更改表结构并添加它

    • 最好创建另一个表来存储此信息,因为这样可以避免更改核心表。在新表中存储用户标识和产品标识,并将产品标识设置为主键。
      现在,您可以根据产品id匹配将这两个表连接起来,根据需要获取这些数据。

      我认为这不是一个好主意,更改DB模式完全没有问题,因为他已经在更改OC的核心,此外,产品与管理员是1-2-1关系,不需要额外的表,额外的表意味着较慢的插入和检索,您认为呢?我提出了这个想法,因为使用vqmod很容易忽略对核心代码的更改,但是对于核心表,这是不可能的。更改核心表有时会增加复杂性,同时修改一些大的内容。但是,关于较慢的插入和检索,您是对的。但也有一些表格,如product_option、product_折扣、product_相关表格,所以在我看来,拥有另一个表格作为product_所有者不会错。