tp5模型事件回調函數中不能使用$this
阿新 • • 發佈:2019-05-02
span public event 通過 數據庫操作 color () stat 需要
tp5模型事件回調函數中不能使用$this,使用會報錯,涉及到數據庫操作使用Db類,不能使用$this->save()之類的方式
如果回調函數中需要使用類內函數,需要將函數定義為static,通過self::調用
給個例子:分類刪除前刪除該分類的子分類
public static function init(){ self::event(‘before_delete‘, function ($data) { $sonids=self::getid($data[‘cate_id‘]); Db::table(‘sp_cate‘)->where([‘cate_id‘=>$sonids])->delete(); }); } //獲取下級分類id static public function getid($pid){ static $ids=array(); $res= Db::table(‘sp_cate‘)->where(‘cate_pid‘,$pid)->field(‘cate_id‘)->select(); if($res!=null){ foreach ($res as $v){ if($v!=‘‘){ $ids[]=$v[‘cate_id‘]; self::getid($v[‘cate_id‘]); } } } return $ids; }
tp5模型事件回調函數中不能使用$this