@@ -33,25 +33,6 @@ public function apply(Builder $builder, Model $model)
33
33
$ this ->extend ($ builder );
34
34
}
35
35
36
- /**
37
- * Remove the scope from the given Eloquent query builder.
38
- *
39
- * @param \Illuminate\Database\Eloquent\Builder $builder
40
- * @param \Illuminate\Database\Eloquent\Model $model
41
- * @return void
42
- */
43
- public function remove (Builder $ builder , Model $ model )
44
- {
45
- $ table = $ model ->getVersionTable ();
46
-
47
- $ query = $ builder ->getQuery ();
48
-
49
- $ query ->joins = collect ($ query ->joins )->reject (function ($ join ) use ($ table )
50
- {
51
- return $ this ->isVersionJoinConstraint ($ join , $ table );
52
- })->values ()->all ();
53
- }
54
-
55
36
/**
56
37
* Extend the query builder with the needed functions.
57
38
*
@@ -77,9 +58,7 @@ protected function addVersion(Builder $builder)
77
58
$ builder ->macro ('version ' , function (Builder $ builder , $ version ) {
78
59
$ model = $ builder ->getModel ();
79
60
80
- $ this ->remove ($ builder , $ builder ->getModel ());
81
-
82
- $ builder ->join ($ model ->getVersionTable (), function ($ join ) use ($ model , $ version ) {
61
+ $ builder ->withoutGlobalScope ($ this )->join ($ model ->getVersionTable (), function ($ join ) use ($ model , $ version ) {
83
62
$ join ->on ($ model ->getQualifiedKeyName (), '= ' , $ model ->getQualifiedVersionKeyName ());
84
63
$ join ->where ($ model ->getQualifiedVersionColumn (), '= ' , $ version );
85
64
});
@@ -99,26 +78,12 @@ protected function addAllVersions(Builder $builder)
99
78
$ builder ->macro ('allVersions ' , function (Builder $ builder ) {
100
79
$ model = $ builder ->getModel ();
101
80
102
- $ this ->remove ($ builder , $ builder ->getModel ());
103
-
104
- $ builder ->join ($ model ->getVersionTable (), function ($ join ) use ($ model ) {
81
+ $ builder ->withoutGlobalScope ($ this )->join ($ model ->getVersionTable (), function ($ join ) use ($ model ) {
105
82
$ join ->on ($ model ->getQualifiedKeyName (), '= ' , $ model ->getQualifiedVersionKeyName ());
106
83
});
107
84
108
85
return $ builder ;
109
86
});
110
87
}
111
88
112
- /**
113
- * Determine if the given join clause is a version constraint.
114
- *
115
- * @param \Illuminate\Database\Query\JoinClause $join
116
- * @param string $column
117
- * @return bool
118
- */
119
- protected function isVersionJoinConstraint (JoinClause $ join , $ table )
120
- {
121
- return $ join ->type == 'inner ' && $ join ->table == $ table ;
122
- }
123
-
124
89
}
0 commit comments