@@ -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