thinkphp5使用前置後置操做

下面舉個例子,前置刪除的例子php

 
模型事件只能夠在調用模型的方法才能生效,使用查詢構造器經過Db類操做是無效的
 
控制器中實例化類
 
$cate=model('cate');

$cate->destroy($cate_id)

這裏爲何使用destroy()---注意destroy只能根據主鍵進行刪除,不用delete()方法,由於用delete()方法進行刪除時不能加where()條件,加了where條件就不能觸發beforeDelete,而不加where條件有不能刪除。發現這是個bug。thinkphp

 
模型中要註冊前置或者後置操做,以下:
protected static function init()
{
    self::beforeDelete(function ($cate) {
        $cate->where('cate_pid',$cate['cate_id'])->delete();


    });
}

這個例子是刪除分類時先把下級分類刪除thinkphp5

相關文章
相關標籤/搜索