From ebf5a3830089d5711036e059bceec1c3e2351747 Mon Sep 17 00:00:00 2001 From: Ben Argo Date: Thu, 7 Sep 2017 15:35:02 +0100 Subject: [PATCH 1/2] Reaffirm support for BelongsToMany relations This temporarily skirts around the issue described in the following issue: https://github.com/jenssegers/laravel-mongodb/issues/1293 --- src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php b/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php index 7992f9dae..6c16d6f60 100644 --- a/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php +++ b/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php @@ -112,7 +112,11 @@ protected function getRelatedConstraintKey($relation) return $relation->getForeignKey(); } - throw new \Exception(class_basename($relation) . ' Is Not supported for hybrid query constraints!'); + if ($relation instanceof BelongsToMany && ! $this->isAcrossConnections($relation)) { + return $this->model->getKeyName(); + } + + throw new \Exception(class_basename($relation) . ' is not supported for hybrid query constraints.'); } /** From 6d4888a20dba693b7e30940a51ff3def3488dfe5 Mon Sep 17 00:00:00 2001 From: Ben Argo Date: Mon, 9 Oct 2017 13:32:30 +0100 Subject: [PATCH 2/2] Add required use statement Without this statement, the reaffirming of belongsToMany relations would fail. The original commit was to prove a point in an issue, but for it to work in the real world this extra bit is added. --- src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php b/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php index 6c16d6f60..5fe908208 100644 --- a/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php +++ b/src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php @@ -4,6 +4,7 @@ use Closure; use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasOneOrMany; use Jenssegers\Mongodb\Eloquent\Model;