duangejian6657 2014-11-28 04:25
浏览 32
已采纳

hookActionProductUpdate在模块中调用了两次

Iam creating a module for my site,Here i have used hookActionProductUpdate hook to insert some values in ps_game_key table .When product is updated insert query is executed two times.SO 2 records are inserted instead of inserting 1 record.This seems to hookActionProductUpdate is called two times.Please Help

 class    customsupplier
{
  public function __construct()
  {
    $this->name = 'customsupplier';
    $this->tab = 'front_office_features';
    $this->version = '1.0';
    $this->author = 'Rex';
    $this->need_instance = 0;

    parent::__construct();

    $this->displayName = $this->l('Custom Supplier');
    $this->description = $this->l('Custom Supplier Module');
 }

public function install()
{
    if (!parent::install() OR
        !$this->alterTable('add') OR            
        !$this->registerHook('actionAdminControllerSetMedia') OR
        !$this->registerHook('actionProductUpdate') OR
        !$this->registerHook('displayAdminProductsExtra'))
        return false;
    return true;
}


 public function hookActionProductUpdate($params)
    {


        Db::getInstance()->insert('game_key', array(
                'id_product' => 89,
                'key_type' =>'test',
                'game_key'      => 'reee',

                'added_date_time'=> 'ssd'
        ),true);

}

}

  • 写回答

1条回答 默认 最新

  • douou8954 2014-11-28 07:05
    关注

    Hook product update may be triggered many times, because there are a lot places where method $product->save() is called.

    You can always prevent saving something more then once in a very simple way

    protected $isSaved = false;
    
    public function hookActionProductUpdate($params)
    {
       if ($this->isSaved)
          return null;
    
       $isInsert = Db::getInstance()--insert(...);
       if ($isInsert)
          $this->isSaved = true;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值