/** * Delete relations * * @param int|\ORM\Model $payload * @return bool */ function delete($payload = null) { $id = null; if ($payload instanceof Model && isset($payload->{$payload::getPrimaryKey()}) && is_numeric($payload->{$payload::getPrimaryKey()})) { $id = $payload->{$payload::getPrimaryKey()}; } else { if (is_numeric($payload)) { $id = $payload; } } $model = $this->model; $pKey = $model::getPrimaryKey(); if (is_null($id)) { // remove all linked rows $sql = "DELETE FROM {$this->tableName} WHERE " . $this->getForeignKey() . ' = ?'; return Model::getConnection()->runQuery($sql, [$this->model->{$pKey}]); } else { return $this->pivot()->findOne([$this->getForeignKey(), $this->getForeignKeyRelated()], [$this->model->{$pKey}, $id])->destroy(); } }