Skip to content

Commit bb7232e

Browse files
committed
fix: update route URI handling to support default language prefixes in ContentObserver
1 parent 30c53f7 commit bb7232e

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

src/Observers/ContentObserver.php

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,19 @@ protected function createDefaultRoute($model, $provider)
167167
return;
168168
}
169169

170+
$uriPrefix = collect($model->parent?->routes)
171+
->where('is_default_pattern', true)
172+
->where('language_id', null)
173+
->pluck('uri')
174+
->first();
175+
$uri = $provider->getRouteSegmentWithPrefix($model->slug, $uriPrefix ?? '');
176+
170177
event(new UpsertRoute(
171178
$model->withoutRelations(),
172179
[
173180
[
174181
'language_id' => null,
175-
'uri' => $provider->getSegment($model),
182+
'uri' => $uri,
176183
'is_default_pattern' => true,
177184
],
178185
]
@@ -189,11 +196,27 @@ protected function updateCurrentRouteInDefaultPattern($model, $provider)
189196
return;
190197
}
191198

192-
$uri = $provider->getSegment($model);
199+
$uriPrefixes = collect($model->parent?->routes)
200+
->where('is_default_pattern', true);
193201

194202
$currentRoutes = collect($model->routes()->where('is_default_pattern', true)->get())
195203
->map(fn (Model $model) => $model->toArray())
196-
->map(function (array $data) use ($uri) {
204+
->map(function (array $data) use ($uriPrefixes, $provider, $model) {
205+
206+
$prefix = $uriPrefixes
207+
->where('language_id', $data['language_id'])
208+
->pluck('uri')
209+
->first();
210+
// fallback to default language (is null)
211+
if (empty($prefix)) {
212+
$prefix = $uriPrefixes
213+
->where('language_id', null)
214+
->pluck('uri')
215+
->first();
216+
}
217+
218+
$uri = $provider->getRouteSegmentWithPrefix($model->slug, $prefix ?? '');
219+
197220
$data['uri'] = $uri;
198221

199222
return $data;

0 commit comments

Comments
 (0)