Opencart 2:将当前登录的管理员 ID 添加到产品插入的 oc_product table
Opencart 2 : Add currently logged admin id to oc_product table on product insert
我想监控哪个仪表板用户 ("admin") 向数据库添加了新产品。
我考虑的解决方案是在函数 addProduct()
下的 admin > model > catalog > product.tpl
下简单地添加另一个 insert
,它将用户 ID 添加到之前在 [=16= 下添加的自定义列].
$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 (model/catalog/product.tpl)。
这就是我的想法,如果这个想法完全错误,请写出更好的解决方案。
- 这个想法是正确的(至少对我来说,我是这样做的)
- 您可以通过调用
$this->user->getId()
获取当前登录管理员的id
- 在
addProduct
函数内添加此代码片段 $userID = $this->user->getId()
,而不是在 class 声明内
product
table 中没有名为 added_by
的列,您将不得不更改 table 结构并添加它
最好创建另一个 table 来存储此信息,因为这样可以避免更改核心 table。在新的 table 中,您存储 user_id 和 product_id 并将 product_id 设置为主键。
现在,您将能够根据需要通过在 product_id 匹配的基础上加入这两个 table 来获取此数据。
我想监控哪个仪表板用户 ("admin") 向数据库添加了新产品。
我考虑的解决方案是在函数 addProduct()
下的 admin > model > catalog > product.tpl
下简单地添加另一个 insert
,它将用户 ID 添加到之前在 [=16= 下添加的自定义列].
$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 (model/catalog/product.tpl)。
这就是我的想法,如果这个想法完全错误,请写出更好的解决方案。
- 这个想法是正确的(至少对我来说,我是这样做的)
- 您可以通过调用
$this->user->getId()
获取当前登录管理员的id
- 在
addProduct
函数内添加此代码片段$userID = $this->user->getId()
,而不是在 class 声明内 product
table 中没有名为added_by
的列,您将不得不更改 table 结构并添加它
最好创建另一个 table 来存储此信息,因为这样可以避免更改核心 table。在新的 table 中,您存储 user_id 和 product_id 并将 product_id 设置为主键。 现在,您将能够根据需要通过在 product_id 匹配的基础上加入这两个 table 来获取此数据。