diff --git a/src/Illuminate/Database/Eloquent/Builder.php b/src/Illuminate/Database/Eloquent/Builder.php index 8f324cc7e877..e3db55800aa1 100755 --- a/src/Illuminate/Database/Eloquent/Builder.php +++ b/src/Illuminate/Database/Eloquent/Builder.php @@ -1254,12 +1254,12 @@ public function __call($method, $parameters) return $this->localMacros[$method](...$parameters); } - if (isset(static::$macros[$method]) and static::$macros[$method] instanceof Closure) { - return call_user_func_array(static::$macros[$method]->bindTo($this, static::class), $parameters); - } - if (isset(static::$macros[$method])) { - return call_user_func_array(static::$macros[$method]->bindTo($this, static::class), $parameters); + if (static::$macros[$method] instanceof Closure) { + return call_user_func_array(static::$macros[$method]->bindTo($this, static::class), $parameters); + } + + return call_user_func_array(static::$macros[$method], $parameters); } if (method_exists($this->model, $scope = 'scope'.ucfirst($method))) { diff --git a/tests/Database/DatabaseEloquentBuilderTest.php b/tests/Database/DatabaseEloquentBuilderTest.php index 48269efe29e9..00ce19b793b7 100755 --- a/tests/Database/DatabaseEloquentBuilderTest.php +++ b/tests/Database/DatabaseEloquentBuilderTest.php @@ -389,7 +389,12 @@ public function testGlobalMacrosAreCalledOnBuilder() return $bar; }); - $this->assertEquals($this->getBuilder()->foo('bar'), 'bar'); + Builder::macro('bam', [Builder::class, 'getQuery']); + + $builder = $this->getBuilder(); + + $this->assertEquals($builder->foo('bar'), 'bar'); + $this->assertEquals($builder->bam(), $builder->getQuery()); } public function testGetModelsProperlyHydratesModels()