1. 程式人生 > >tp5模型事件回調函數中不能使用$this

tp5模型事件回調函數中不能使用$this

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