@@ -14,16 +14,16 @@ trait SortJoinTrait
14
14
15
15
public function scopeWhereJoin (Builder $ builder , $ column , $ operator = null , $ value = null , $ boolean = 'and ' )
16
16
{
17
- $ column = $ this ->performJoin ($ builder , $ column );
18
17
$ this ->relationClauses [] = ['column ' => $ column , 'operator ' => $ operator , 'value ' => $ value , 'boolean ' => $ boolean ];
18
+ $ column = $ this ->performJoin ($ builder , $ column );
19
19
20
20
return $ builder ->where ($ column , $ operator , $ value , $ boolean );
21
21
}
22
22
23
23
public function scopeOrWhereJoin (Builder $ builder , $ column , $ operator = null , $ value )
24
24
{
25
- $ column = $ this ->performJoin ($ builder , $ column );
26
25
$ this ->relationClauses [] = ['column ' => $ column , 'operator ' => $ operator , 'value ' => $ value , 'boolean ' => 'and ' ];
26
+ $ column = $ this ->performJoin ($ builder , $ column );
27
27
28
28
return $ builder ->orWhere ($ column , $ operator , $ value );
29
29
}
@@ -69,8 +69,10 @@ private function performJoin($builder, $relations){
69
69
$ builder ->leftJoin ($ relatedTable . ' as ' . $ relatedTableAlias , $ relatedTableAlias . '. ' . $ keyRelated , '= ' , $ currentTable . '. ' . $ relatedPrimaryKey );
70
70
}
71
71
72
- //apply where deleted_at is null is model using soft deletes
73
- if (method_exists ($ relatedModel , 'getQualifiedDeletedAtColumn ' )){
72
+ $ columnsWhere = collect ($ relatedModel ->relationClauses )->pluck ('column ' )->toArray ();
73
+
74
+ //by default apply where deleted_at is null if model is using soft deletes, if any where clause have deleted_at columnn do not apply
75
+ if (method_exists ($ relatedModel , 'getQualifiedDeletedAtColumn ' ) && ! in_array ('deleted_at ' , $ columnsWhere )){
74
76
$ builder ->where ([$ relatedTableAlias . '.deleted_at ' => null ]);
75
77
}
76
78
}
0 commit comments