diff --git a/src/Illuminate/Database/Eloquent/Concerns/DecoratesQueryBuilder.php b/src/Illuminate/Database/Eloquent/Concerns/DecoratesQueryBuilder.php index b22c5b831a14..dd3ba2eeaa56 100644 --- a/src/Illuminate/Database/Eloquent/Concerns/DecoratesQueryBuilder.php +++ b/src/Illuminate/Database/Eloquent/Concerns/DecoratesQueryBuilder.php @@ -32,7 +32,7 @@ abstract public function toBase(); */ public function select($columns = ['*']) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -40,7 +40,7 @@ public function select($columns = ['*']) */ public function selectSub($query, $as) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -48,7 +48,7 @@ public function selectSub($query, $as) */ public function selectRaw($expression, array $bindings = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -56,7 +56,7 @@ public function selectRaw($expression, array $bindings = []) */ public function fromSub($query, $as) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -64,7 +64,7 @@ public function fromSub($query, $as) */ public function fromRaw($expression, $bindings = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -72,7 +72,7 @@ public function fromRaw($expression, $bindings = []) */ public function addSelect($column) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -80,7 +80,7 @@ public function addSelect($column) */ public function distinct() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -88,7 +88,7 @@ public function distinct() */ public function from($table, $as = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -96,7 +96,7 @@ public function from($table, $as = null) */ public function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -104,7 +104,7 @@ public function join($table, $first, $operator = null, $second = null, $type = ' */ public function joinWhere($table, $first, $operator, $second, $type = 'inner') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -112,7 +112,7 @@ public function joinWhere($table, $first, $operator, $second, $type = 'inner') */ public function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -120,7 +120,7 @@ public function joinSub($query, $as, $first, $operator = null, $second = null, $ */ public function leftJoin($table, $first, $operator = null, $second = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -128,7 +128,7 @@ public function leftJoin($table, $first, $operator = null, $second = null) */ public function leftJoinWhere($table, $first, $operator, $second) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -136,7 +136,7 @@ public function leftJoinWhere($table, $first, $operator, $second) */ public function leftJoinSub($query, $as, $first, $operator = null, $second = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -144,7 +144,7 @@ public function leftJoinSub($query, $as, $first, $operator = null, $second = nul */ public function rightJoin($table, $first, $operator = null, $second = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -152,7 +152,7 @@ public function rightJoin($table, $first, $operator = null, $second = null) */ public function rightJoinWhere($table, $first, $operator, $second) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -160,7 +160,7 @@ public function rightJoinWhere($table, $first, $operator, $second) */ public function rightJoinSub($query, $as, $first, $operator = null, $second = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -168,7 +168,7 @@ public function rightJoinSub($query, $as, $first, $operator = null, $second = nu */ public function crossJoin($table, $first = null, $operator = null, $second = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -176,7 +176,7 @@ public function crossJoin($table, $first = null, $operator = null, $second = nul */ public function crossJoinSub($query, $as) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -184,7 +184,7 @@ public function crossJoinSub($query, $as) */ public function mergeWheres($wheres, $bindings) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -192,7 +192,7 @@ public function mergeWheres($wheres, $bindings) */ public function where($column, $operator = null, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -200,7 +200,7 @@ public function where($column, $operator = null, $value = null, $boolean = 'and' */ public function prepareValueAndOperator($value, $operator, $useDefault = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -208,7 +208,7 @@ public function prepareValueAndOperator($value, $operator, $useDefault = false) */ public function orWhere($column, $operator = null, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -216,7 +216,7 @@ public function orWhere($column, $operator = null, $value = null) */ public function whereColumn($first, $operator = null, $second = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -224,7 +224,7 @@ public function whereColumn($first, $operator = null, $second = null, $boolean = */ public function orWhereColumn($first, $operator = null, $second = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -232,7 +232,7 @@ public function orWhereColumn($first, $operator = null, $second = null) */ public function whereRaw($sql, $bindings = [], $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -240,7 +240,7 @@ public function whereRaw($sql, $bindings = [], $boolean = 'and') */ public function orWhereRaw($sql, $bindings = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -248,7 +248,7 @@ public function orWhereRaw($sql, $bindings = []) */ public function whereIn($column, $values, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -256,7 +256,7 @@ public function whereIn($column, $values, $boolean = 'and', $not = false) */ public function orWhereIn($column, $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -264,7 +264,7 @@ public function orWhereIn($column, $values) */ public function whereNotIn($column, $values, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -272,7 +272,7 @@ public function whereNotIn($column, $values, $boolean = 'and') */ public function orWhereNotIn($column, $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -280,7 +280,7 @@ public function orWhereNotIn($column, $values) */ public function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -288,7 +288,7 @@ public function whereIntegerInRaw($column, $values, $boolean = 'and', $not = fal */ public function orWhereIntegerInRaw($column, $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -296,7 +296,7 @@ public function orWhereIntegerInRaw($column, $values) */ public function whereIntegerNotInRaw($column, $values, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -304,7 +304,7 @@ public function whereIntegerNotInRaw($column, $values, $boolean = 'and') */ public function orWhereIntegerNotInRaw($column, $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -312,7 +312,7 @@ public function orWhereIntegerNotInRaw($column, $values) */ public function whereNull($columns, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -320,7 +320,7 @@ public function whereNull($columns, $boolean = 'and', $not = false) */ public function orWhereNull($column) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -328,7 +328,7 @@ public function orWhereNull($column) */ public function whereNotNull($columns, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -336,7 +336,7 @@ public function whereNotNull($columns, $boolean = 'and') */ public function whereBetween($column, iterable $values, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -344,7 +344,7 @@ public function whereBetween($column, iterable $values, $boolean = 'and', $not = */ public function whereBetweenColumns($column, array $values, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -352,7 +352,7 @@ public function whereBetweenColumns($column, array $values, $boolean = 'and', $n */ public function orWhereBetween($column, iterable $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -360,7 +360,7 @@ public function orWhereBetween($column, iterable $values) */ public function orWhereBetweenColumns($column, array $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -368,7 +368,7 @@ public function orWhereBetweenColumns($column, array $values) */ public function whereNotBetween($column, iterable $values, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -376,7 +376,7 @@ public function whereNotBetween($column, iterable $values, $boolean = 'and') */ public function whereNotBetweenColumns($column, array $values, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -384,7 +384,7 @@ public function whereNotBetweenColumns($column, array $values, $boolean = 'and') */ public function orWhereNotBetween($column, iterable $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -392,7 +392,7 @@ public function orWhereNotBetween($column, iterable $values) */ public function orWhereNotBetweenColumns($column, array $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -400,7 +400,7 @@ public function orWhereNotBetweenColumns($column, array $values) */ public function orWhereNotNull($column) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -408,7 +408,7 @@ public function orWhereNotNull($column) */ public function whereDate($column, $operator, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -416,7 +416,7 @@ public function whereDate($column, $operator, $value = null, $boolean = 'and') */ public function orWhereDate($column, $operator, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -424,7 +424,7 @@ public function orWhereDate($column, $operator, $value = null) */ public function whereTime($column, $operator, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -432,7 +432,7 @@ public function whereTime($column, $operator, $value = null, $boolean = 'and') */ public function orWhereTime($column, $operator, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -440,7 +440,7 @@ public function orWhereTime($column, $operator, $value = null) */ public function whereDay($column, $operator, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -448,7 +448,7 @@ public function whereDay($column, $operator, $value = null, $boolean = 'and') */ public function orWhereDay($column, $operator, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -456,7 +456,7 @@ public function orWhereDay($column, $operator, $value = null) */ public function whereMonth($column, $operator, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -464,7 +464,7 @@ public function whereMonth($column, $operator, $value = null, $boolean = 'and') */ public function orWhereMonth($column, $operator, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -472,7 +472,7 @@ public function orWhereMonth($column, $operator, $value = null) */ public function whereYear($column, $operator, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -480,7 +480,7 @@ public function whereYear($column, $operator, $value = null, $boolean = 'and') */ public function orWhereYear($column, $operator, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -488,7 +488,7 @@ public function orWhereYear($column, $operator, $value = null) */ public function whereNested(Closure $callback, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -496,7 +496,7 @@ public function whereNested(Closure $callback, $boolean = 'and') */ public function addNestedWhereQuery($query, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -504,7 +504,7 @@ public function addNestedWhereQuery($query, $boolean = 'and') */ public function whereExists(Closure $callback, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -512,7 +512,7 @@ public function whereExists(Closure $callback, $boolean = 'and', $not = false) */ public function orWhereExists(Closure $callback, $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -520,7 +520,7 @@ public function orWhereExists(Closure $callback, $not = false) */ public function whereNotExists(Closure $callback, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -528,7 +528,7 @@ public function whereNotExists(Closure $callback, $boolean = 'and') */ public function orWhereNotExists(Closure $callback) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -536,7 +536,7 @@ public function orWhereNotExists(Closure $callback) */ public function whereRowValues($columns, $operator, $values, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -544,7 +544,7 @@ public function whereRowValues($columns, $operator, $values, $boolean = 'and') */ public function orWhereRowValues($columns, $operator, $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -552,7 +552,7 @@ public function orWhereRowValues($columns, $operator, $values) */ public function whereJsonContains($column, $value, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -560,7 +560,7 @@ public function whereJsonContains($column, $value, $boolean = 'and', $not = fals */ public function orWhereJsonContains($column, $value) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -568,7 +568,7 @@ public function orWhereJsonContains($column, $value) */ public function whereJsonDoesntContain($column, $value, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -576,7 +576,7 @@ public function whereJsonDoesntContain($column, $value, $boolean = 'and') */ public function orWhereJsonDoesntContain($column, $value) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -584,7 +584,7 @@ public function orWhereJsonDoesntContain($column, $value) */ public function whereJsonLength($column, $operator, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -592,7 +592,7 @@ public function whereJsonLength($column, $operator, $value = null, $boolean = 'a */ public function orWhereJsonLength($column, $operator, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -600,7 +600,7 @@ public function orWhereJsonLength($column, $operator, $value = null) */ public function groupBy(...$groups) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -608,7 +608,7 @@ public function groupBy(...$groups) */ public function groupByRaw($sql, array $bindings = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -616,7 +616,7 @@ public function groupByRaw($sql, array $bindings = []) */ public function having($column, $operator = null, $value = null, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -624,7 +624,7 @@ public function having($column, $operator = null, $value = null, $boolean = 'and */ public function orHaving($column, $operator = null, $value = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -632,7 +632,7 @@ public function orHaving($column, $operator = null, $value = null) */ public function havingNull($columns, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -640,7 +640,7 @@ public function havingNull($columns, $boolean = 'and', $not = false) */ public function orHavingNull($column) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -648,7 +648,7 @@ public function orHavingNull($column) */ public function havingNotNull($columns, $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -656,7 +656,7 @@ public function havingNotNull($columns, $boolean = 'and') */ public function orHavingNotNull($column) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -664,7 +664,7 @@ public function orHavingNotNull($column) */ public function havingBetween($column, array $values, $boolean = 'and', $not = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -672,7 +672,7 @@ public function havingBetween($column, array $values, $boolean = 'and', $not = f */ public function havingRaw($sql, array $bindings = [], $boolean = 'and') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -680,7 +680,7 @@ public function havingRaw($sql, array $bindings = [], $boolean = 'and') */ public function orHavingRaw($sql, array $bindings = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -688,7 +688,7 @@ public function orHavingRaw($sql, array $bindings = []) */ public function orderBy($column, $direction = 'asc') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -696,7 +696,7 @@ public function orderBy($column, $direction = 'asc') */ public function orderByDesc($column) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -704,7 +704,7 @@ public function orderByDesc($column) */ public function latest($column = 'created_at') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -712,7 +712,7 @@ public function latest($column = 'created_at') */ public function oldest($column = 'created_at') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -720,7 +720,7 @@ public function oldest($column = 'created_at') */ public function inRandomOrder($seed = '') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -728,7 +728,7 @@ public function inRandomOrder($seed = '') */ public function orderByRaw($sql, $bindings = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -736,7 +736,7 @@ public function orderByRaw($sql, $bindings = []) */ public function skip($value) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -744,7 +744,7 @@ public function skip($value) */ public function offset($value) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -752,7 +752,7 @@ public function offset($value) */ public function take($value) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -760,7 +760,7 @@ public function take($value) */ public function limit($value) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -768,7 +768,7 @@ public function limit($value) */ public function forPage($page, $perPage = 15) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -776,7 +776,7 @@ public function forPage($page, $perPage = 15) */ public function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -784,7 +784,7 @@ public function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id') */ public function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -792,7 +792,7 @@ public function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id') */ public function reorder($column = null, $direction = 'asc') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -800,7 +800,7 @@ public function reorder($column = null, $direction = 'asc') */ public function union($query, $all = false) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -808,7 +808,7 @@ public function union($query, $all = false) */ public function unionAll($query) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -816,7 +816,7 @@ public function unionAll($query) */ public function lock($value = true) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -824,7 +824,7 @@ public function lock($value = true) */ public function lockForUpdate() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -832,7 +832,7 @@ public function lockForUpdate() */ public function sharedLock() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -848,7 +848,7 @@ public function toSql() */ public function find($id, $columns = ['*']) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -856,7 +856,7 @@ public function find($id, $columns = ['*']) */ public function value($column) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -864,7 +864,7 @@ public function value($column) */ public function get($columns = ['*']) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -872,7 +872,7 @@ public function get($columns = ['*']) */ public function cursor() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -880,7 +880,7 @@ public function cursor() */ public function pluck($column, $key = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -888,7 +888,7 @@ public function pluck($column, $key = null) */ public function implode($column, $glue = '') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -976,7 +976,7 @@ public function average($column) */ public function aggregate($function, $columns = ['*']) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1024,7 +1024,7 @@ public function insertUsing(array $columns, $query) */ public function update(array $values) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1032,7 +1032,7 @@ public function update(array $values) */ public function updateOrInsert(array $attributes, array $values = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1040,7 +1040,7 @@ public function updateOrInsert(array $attributes, array $values = []) */ public function upsert(array $values, $uniqueBy, $update = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1048,7 +1048,7 @@ public function upsert(array $values, $uniqueBy, $update = null) */ public function increment($column, $amount = 1, array $extra = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1056,7 +1056,7 @@ public function increment($column, $amount = 1, array $extra = []) */ public function decrement($column, $amount = 1, array $extra = []) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1064,7 +1064,7 @@ public function decrement($column, $amount = 1, array $extra = []) */ public function delete($id = null) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1072,7 +1072,7 @@ public function delete($id = null) */ public function truncate() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1104,7 +1104,7 @@ public function getBindings() */ public function getRawBindings() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1112,7 +1112,7 @@ public function getRawBindings() */ public function setBindings(array $bindings, $type = 'where') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1120,7 +1120,7 @@ public function setBindings(array $bindings, $type = 'where') */ public function addBinding($value, $type = 'where') { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1128,7 +1128,7 @@ public function addBinding($value, $type = 'where') */ public function mergeBindings(Builder $query) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1136,7 +1136,7 @@ public function mergeBindings(Builder $query) */ public function cleanBindings(array $bindings) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1152,7 +1152,7 @@ public function getConnection() */ public function getProcessor() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1168,7 +1168,7 @@ public function getGrammar() */ public function useWritePdo() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1176,7 +1176,7 @@ public function useWritePdo() */ public function clone() { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1184,7 +1184,7 @@ public function clone() */ public function cloneWithout(array $properties) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1192,7 +1192,7 @@ public function cloneWithout(array $properties) */ public function cloneWithoutBindings(array $except) { - return $this->forwardCallToQueryBuilder(__FUNCTION__, func_get_args()); + return $this->forwardDecoratedCallTo($this->query, __FUNCTION__, func_get_args()); } /** @@ -1204,24 +1204,6 @@ public function cloneWithoutBindings(array $except) */ public function __call($method, $parameters) { - return $this->forwardCallToQueryBuilder($method, $parameters); - } - - /** - * Forward the given method to the query builder. - * - * @param string $method - * @param array $parameters - * @return static|mixed - */ - protected function forwardCallToQueryBuilder($method, $parameters) - { - $result = $this->forwardCallTo($this->query, $method, $parameters); - - if ($result === $this->query) { - return $this; - } - - return $result; + return $this->forwardDecoratedCallTo($this->query, $method, $parameters); } } diff --git a/src/Illuminate/Events/NullDispatcher.php b/src/Illuminate/Events/NullDispatcher.php index 5c539d53a361..3164fbb2a884 100644 --- a/src/Illuminate/Events/NullDispatcher.php +++ b/src/Illuminate/Events/NullDispatcher.php @@ -139,6 +139,6 @@ public function forgetPushed() */ public function __call($method, $parameters) { - return $this->forwardCallTo($this->dispatcher, $method, $parameters); + return $this->forwardDecoratedCallTo($this->dispatcher, $method, $parameters); } } diff --git a/src/Illuminate/Http/Resources/DelegatesToResource.php b/src/Illuminate/Http/Resources/DelegatesToResource.php index 48f455f97e02..758709c5ef96 100644 --- a/src/Illuminate/Http/Resources/DelegatesToResource.php +++ b/src/Illuminate/Http/Resources/DelegatesToResource.php @@ -149,6 +149,6 @@ public function __get($key) */ public function __call($method, $parameters) { - return $this->forwardCallTo($this->resource, $method, $parameters); + return $this->forwardDecoratedCallTo($this->resource, $method, $parameters); } } diff --git a/src/Illuminate/Mail/Message.php b/src/Illuminate/Mail/Message.php index e225da983963..8c13afe3d4c6 100755 --- a/src/Illuminate/Mail/Message.php +++ b/src/Illuminate/Mail/Message.php @@ -292,6 +292,6 @@ public function getSymfonyMessage() */ public function __call($method, $parameters) { - return $this->forwardCallTo($this->message, $method, $parameters); + return $this->forwardDecoratedCallTo($this->message, $method, $parameters); } } diff --git a/src/Illuminate/Support/Traits/ForwardsCalls.php b/src/Illuminate/Support/Traits/ForwardsCalls.php index 8b7add869689..e7181809804f 100644 --- a/src/Illuminate/Support/Traits/ForwardsCalls.php +++ b/src/Illuminate/Support/Traits/ForwardsCalls.php @@ -37,6 +37,27 @@ protected function forwardCallTo($object, $method, $parameters) } } + /** + * Forward a method call to the given object, returning $this if the forwarded call returned itself. + * + * @param mixed $object + * @param string $method + * @param array $parameters + * @return mixed + * + * @throws \BadMethodCallException + */ + protected function forwardDecoratedCallTo($object, $method, $parameters) + { + $result = $this->forwardCallTo($object, $method, $parameters); + + if ($result === $object) { + return $this; + } + + return $result; + } + /** * Throw a bad method call exception for the given method. *