下面举个例子,前置删除的例子
模型事件只可以在调用模型的方法才能生效,使用查询构造器通过Db类操作是无效的
控制器中实例化类
$cate=model('cate'); $cate->destroy($cate_id)
这里为什么使用destroy()---注意destroy只能根据主键进行删除,不用delete()方法,因为用delete()方法进行删除时不能加where()条件,加了where条件就不能触发beforeDelete,而不加where条件有不能删除。发现这是个bug。
模型中要注册前置或者后置操作,如下:
protected static function init() { self::beforeDelete(function ($cate) { $cate->where('cate_pid',$cate['cate_id'])->delete(); }); }
这个例子是删除分类时先把下级分类删除