[TOC] #### 1. 關聯(lián)刪除 ---- 模型的關聯(lián)刪除是經常使用的模型特性之一 適用場景舉例: 1、在刪除文章的同時刪除下面的評論 2、 刪除用戶的同時刪除用戶的多條評論和多條操作日志 #### 2. User 模型定義 ---- 一個用戶對應多條評論和多條操作日志,并且在用戶模型已經定義模型關聯(lián)方法 ``` /** * 一對多關聯(lián) 用戶對應多個評論 * * @return \think\model\relation\hasMany */ public function comments() { return $this->hasMany(Comment::class, 'user_id', 'id'); } /** * 一對多關聯(lián) 用戶對應多個操作日志 * * @return \think\model\relation\hasMany */ public function logs() { return $this->hasMany(Log::class, 'user_id', 'id'); } ``` #### 3. 關聯(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` 關聯(lián)預載入,否則 `together` 關聯(lián)刪除無效