@@ -707,9 +707,8 @@ protected function whereHaving(string $qb_key, $key, $value = null, string $type
707707
708708 if ($ v instanceof Closure)
709709 {
710- $ builder = clone $ this ;
711- $ builder ->from ([], true )->resetQuery ();
712- $ v = '( ' . str_replace ("\n" , ' ' , $ v ($ builder )->getCompiledSelect ()) . ') ' ;
710+ $ builder = $ this ->cleanClone ();
711+ $ v = '( ' . str_replace ("\n" , ' ' , $ v ($ builder )->getCompiledSelect ()) . ') ' ;
713712 }
714713 else
715714 {
@@ -849,9 +848,8 @@ protected function _whereIn(string $key = null, $values = null, bool $not = fals
849848
850849 if ($ values instanceof Closure)
851850 {
852- $ builder = clone $ this ;
853- $ builder ->from ([], true )->resetQuery ();
854- $ ok = str_replace ("\n" , ' ' , $ values ($ builder )->getCompiledSelect ());
851+ $ builder = $ this ->cleanClone ();
852+ $ ok = str_replace ("\n" , ' ' , $ values ($ builder )->getCompiledSelect ());
855853 }
856854 else
857855 {
@@ -3030,4 +3028,16 @@ protected function setBind(string $key, $value = null, bool $escape = true): str
30303028 }
30313029
30323030 //--------------------------------------------------------------------
3031+
3032+ /**
3033+ * Returns a clone of a Base Builder with reset query builder values.
3034+ *
3035+ * @return BaseBuilder
3036+ */
3037+ protected function cleanClone ()
3038+ {
3039+ return (clone $ this )->from ([], true )->resetQuery ();
3040+ }
3041+
3042+ //--------------------------------------------------------------------
30333043}
0 commit comments