7
7
use Illuminate \Pagination \LengthAwarePaginator ;
8
8
use Illuminate \Support \Collection ;
9
9
use Illuminate \Support \Facades \DB ;
10
+ use Illuminate \Support \Str ;
10
11
use Statikbe \FilamentFlexibleContentBlockPages \Facades \FilamentFlexibleContentBlockPages ;
11
12
use Statikbe \FilamentFlexibleContentBlockPages \Models \Tag ;
12
13
@@ -30,7 +31,7 @@ public function getTaggedContent(Tag $tag, ?int $perPage = null): LengthAwarePag
30
31
$ groupedIds = collect ($ unionResults ->items ())->groupBy ('model_class ' );
31
32
32
33
// Step 3: Load actual models in batches
33
- $ models = $ this ->hydrateModels ($ groupedIds, $ tag );
34
+ $ models = $ this ->hydrateModels ($ groupedIds );
34
35
35
36
// Return as paginator with actual models
36
37
return new LengthAwarePaginator (
@@ -55,12 +56,13 @@ private function getUnionQueryResults(Tag $tag, int $perPage): LengthAwarePagina
55
56
56
57
foreach ($ enabledModels as $ modelClass ) {
57
58
/** @var class-string $modelClass */
59
+ $ escapedModelClass = Str::replace ('\\' , '\\\\' , $ modelClass );
58
60
$ query = $ modelClass ::withAnyTagsOfAnyType ([$ tag ->name ])
59
61
->select ([
60
62
'id ' ,
61
63
'publishing_begins_at ' ,
62
64
'created_at ' , // fallback for sorting
63
- DB ::raw ("' {$ modelClass }' as model_class " ),
65
+ DB ::raw ("' {$ escapedModelClass }' as model_class " ),
64
66
]);
65
67
66
68
// Add published scope if available
@@ -91,7 +93,7 @@ private function getUnionQueryResults(Tag $tag, int $perPage): LengthAwarePagina
91
93
/**
92
94
* Hydrate actual model instances from the union query results.
93
95
*/
94
- private function hydrateModels (Collection $ groupedIds, Tag $ tag ): Collection
96
+ private function hydrateModels (Collection $ groupedIds ): Collection
95
97
{
96
98
$ models = collect ();
97
99
@@ -156,7 +158,7 @@ public function getContentCounts(Tag $tag): array
156
158
157
159
foreach ($ enabledModels as $ modelClass ) {
158
160
/** @var class-string $modelClass */
159
- $ count = $ modelClass ::withAnyTags ([$ tag ->name ])
161
+ $ count = $ modelClass ::withAnyTagsOfAnyType ([$ tag ->name ])
160
162
->when (method_exists ($ modelClass , 'scopePublished ' ), function ($ query ) {
161
163
return $ query ->published ();
162
164
})
0 commit comments