From 771dfb553c938a36dbd9d672b292e53057bbcfb6 Mon Sep 17 00:00:00 2001 From: Moshe Brodsky <44633930+moshe-autoleadstar@users.noreply.github.com> Date: Thu, 11 Jun 2020 17:03:17 +0300 Subject: [PATCH] Streamline ease of use with relation subquery (#33180) Since the Relation forwards calls to the query builder object, it can be turned into a subquery just like a regular query builder object --- src/Illuminate/Database/Query/Builder.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Query/Builder.php b/src/Illuminate/Database/Query/Builder.php index 82e7c732c1f4..763da6afc754 100755 --- a/src/Illuminate/Database/Query/Builder.php +++ b/src/Illuminate/Database/Query/Builder.php @@ -8,6 +8,7 @@ use Illuminate\Database\Concerns\BuildsQueries; use Illuminate\Database\ConnectionInterface; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; +use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Database\Query\Grammars\Grammar; use Illuminate\Database\Query\Processors\Processor; use Illuminate\Pagination\Paginator; @@ -337,7 +338,7 @@ protected function createSub($query) */ protected function parseSub($query) { - if ($query instanceof self || $query instanceof EloquentBuilder) { + if ($query instanceof self || $query instanceof EloquentBuilder || $query instanceof Relation) { return [$query->toSql(), $query->getBindings()]; } elseif (is_string($query)) { return [$query, []]; @@ -3086,6 +3087,7 @@ protected function isQueryable($value) { return $value instanceof self || $value instanceof EloquentBuilder || + $value instanceof Relation || $value instanceof Closure; }