[TOC] #### 1. 關(guān)聯(lián)刪除 ---- 模型的關(guān)聯(lián)刪除是經(jīng)常使用的模型特性之一 適用場景舉例: 1、在刪除文章的同時刪除下面的評論 2、 刪除用戶的同時刪除用戶的多條評論和多條操作日志 #### 2. User 模型定義 ---- 一個用戶對應(yīng)多條評論和多條操作日志,并且在用戶模型已經(jīng)定義模型關(guān)聯(lián)方法 ``` /** * 一對多關(guān)聯(lián) 用戶對應(yīng)多個評論 * * @return \think\model\relation\hasMany */ public function comments() { return $this->hasMany(Comment::class, 'user_id', 'id'); } /** * 一對多關(guān)聯(lián) 用戶對應(yīng)多個操作日志 * * @return \think\model\relation\hasMany */ public function logs() { return $this->hasMany(Log::class, 'user_id', 'id'); } ``` #### 3. 關(guān)聯(lián)刪除使用示例 ---- 刪除一個用戶及其發(fā)布的評論、操作日志 ``` $user_id = 1; $data = User::with(['comments', 'logs'])->findOrEmpty($user_id); $bool = $data->together(['comments', 'logs'])->delete(); ``` 刪除多個用戶及其發(fā)布的評論、操作日志 ``` $data = User::with(['comments', 'logs'])->select(); foreach ($data as $model) { $model->together(['comments', 'logs'])->delete(); } ``` #### 4. 特別注意 ---- 查詢時必須使用 `with` 關(guān)聯(lián)預(yù)載入,否則 `together` 關(guān)聯(lián)刪除無效