From 1d3e2f48371e5830424990f31b6358c0af01897d Mon Sep 17 00:00:00 2001 From: thinkphp Date: Sat, 16 Jul 2016 17:39:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BRelation=E7=9A=84detach?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/model/Relation.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/library/think/model/Relation.php b/library/think/model/Relation.php index 515bf362..94525f76 100644 --- a/library/think/model/Relation.php +++ b/library/think/model/Relation.php @@ -640,14 +640,16 @@ class Relation $id = $data->$relationFk; } // 删除中间表数据 - $pk = $this->parent->getPk(); - $pivot[$this->localKey] = $this->parent->$pk; - $pivot[$this->foreignKey] = is_array($id) ? ['in', $id] : $id; - $query = clone $this->parent->db(); + $pk = $this->parent->getPk(); + $pivot[$this->localKey] = $this->parent->$pk; + if (isset($id)) { + $pivot[$this->foreignKey] = is_array($id) ? ['in', $id] : $id; + } + $query = clone $this->parent->db(); $query->table($this->middle)->where($pivot)->delete(); // 删除关联表数据 - if ($relationDel) { + if (isset($id) && $relationDel) { $model = $this->model; $model::destroy($id); }