Skip to content

Commit 88060cc

Browse files
committed
collect global url defaults as well
1 parent 23ea947 commit 88060cc

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/GenerateCommand.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Routing\Router;
99
use Illuminate\Routing\UrlGenerator;
1010
use Illuminate\Support\Collection;
11+
use Illuminate\Support\Facades\URL;
1112
use Illuminate\Support\Str;
1213
use Illuminate\View\Factory;
1314
use ReflectionProperty;
@@ -54,7 +55,9 @@ public function handle()
5455
$this->forcedScheme = (new ReflectionProperty($this->url, 'forceScheme'))->getValue($this->url);
5556
$this->forcedRoot = (new ReflectionProperty($this->url, 'forcedRoot'))->getValue($this->url);
5657

57-
$routes = collect($this->router->getRoutes())->map(function (BaseRoute $route) {
58+
$globalUrlDefaults = collect(URL::getDefaultParameters())->filter(fn ($v) => is_scalar($v) || is_null($v));
59+
60+
$routes = collect($this->router->getRoutes())->map(function (BaseRoute $route) use ($globalUrlDefaults) {
5861
$defaults = collect($this->router->gatherRouteMiddleware($route))->map(function ($middleware) {
5962
if ($middleware instanceof \Closure) {
6063
return [];
@@ -65,7 +68,7 @@ public function handle()
6568
return $this->urlDefaults[$middleware];
6669
})->flatMap(fn ($r) => $r);
6770

68-
return new Route($route, $defaults, $this->forcedScheme, $this->forcedRoot);
71+
return new Route($route, $globalUrlDefaults->merge($defaults), $this->forcedScheme, $this->forcedRoot);
6972
});
7073

7174
if (! $this->option('skip-actions')) {
@@ -344,6 +347,12 @@ private function getDefaultsForMiddleware(string $middleware)
344347
}
345348

346349
$methodContents = str($methodContents)->after('{')->beforeLast('}')->trim();
350+
351+
return $this->extractUrlDefaults($methodContents);
352+
}
353+
354+
private function extractUrlDefaults(string $methodContents): array
355+
{
347356
$tokens = token_get_all('<?php '.$methodContents);
348357
$foundUrlFacade = false;
349358
$defaults = [];

0 commit comments

Comments
 (0)