首页 > 其他 > 详细

tp5模型事件回调函数中不能使用$this

时间:2019-05-01 21:36:12      阅读:427      评论:0      收藏:0      [点我收藏+]

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

原文:https://www.cnblogs.com/jcydd/p/10800808.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!