Skip to content

Commit 7feb464

Browse files
authored
Merge pull request #670 from skipperbent/v5-development
Version 5.3.0.5
2 parents f085134 + d3b1577 commit 7feb464

File tree

5 files changed

+21
-12
lines changed

5 files changed

+21
-12
lines changed

src/Pecee/SimpleRouter/Route/LoadableRoute.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public function setUrl(string $url): ILoadableRoute
9191
$parameters = array_fill_keys($matches[1], null);
9292
}
9393
}
94+
9495
$this->parameters = $parameters;
9596

9697
return $this;

src/Pecee/SimpleRouter/Route/RouteResource.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,19 @@ public function hasName(string $name): bool
6868
*/
6969
public function findUrl(?string $method = null, $parameters = null, ?string $name = null): string
7070
{
71-
$url = parent::findUrl($method, $parameters, $name);
71+
$url = array_search($name, $this->names, true);
7272

73-
$action = array_search($name, $this->names, true);
73+
$parametersUrl = '';
7474

75-
if ($action !== false) {
76-
return $url . $this->urls[$action];
75+
if ($parameters !== null && count($parameters) > 0) {
76+
$parametersUrl = join('/', $parameters) . '/';
7777
}
7878

79-
return $url;
79+
if ($url !== false) {
80+
return rtrim($this->url . $parametersUrl . $this->urls[$url], '/') . '/';
81+
}
82+
83+
return $this->url . $parametersUrl;
8084
}
8185

8286
protected function call($method): bool

tests/Pecee/SimpleRouter/RouterResourceTest.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,19 @@ public function testResourceGet()
6363
$response = TestRouter::debugOutput('/resource/38', 'get');
6464

6565
$this->assertEquals('show 38', $response);
66-
6766
}
6867

6968
public function testResourceUrls()
7069
{
7170
TestRouter::resource('/resource', 'ResourceController')->name('resource');
7271

73-
TestRouter::debugOutputNoReset('/resource');
72+
TestRouter::debugNoReset('/resource');
7473

7574
$this->assertEquals('/resource/3/create/', TestRouter::router()->getUrl('resource.create', ['id' => 3]));
76-
$this->assertEquals('/resource/3/edit/', TestRouter::router()->getUrl('resource.edit', ['id' => 3]));
77-
$this->assertEquals('/resource/3/', TestRouter::router()->getUrl('resource.update', ['id' => 3]));
78-
$this->assertEquals('/resource/3/', TestRouter::router()->getUrl('resource.destroy', ['id' => 3]));
79-
$this->assertEquals('/resource/3/', TestRouter::router()->getUrl('resource.delete', ['id' => 3]));
75+
$this->assertEquals('/resource/5/edit/', TestRouter::router()->getUrl('resource.edit', ['id' => 5]));
76+
$this->assertEquals('/resource/6/', TestRouter::router()->getUrl('resource.update', ['id' => 6]));
77+
$this->assertEquals('/resource/9/', TestRouter::router()->getUrl('resource.destroy', ['id' => 9]));
78+
$this->assertEquals('/resource/12/', TestRouter::router()->getUrl('resource.delete', ['id' => 12]));
8079
$this->assertEquals('/resource/', TestRouter::router()->getUrl('resource'));
8180

8281
TestRouter::router()->reset();

tests/Pecee/SimpleRouter/RouterUrlTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ public function testUrls()
184184
// Should match /?jackdaniels=true&cola=yeah
185185
$this->assertEquals('/?jackdaniels=true&cola=yeah', TestRouter::getUrl('home', null, ['jackdaniels' => 'true', 'cola' => 'yeah']));
186186

187-
TestRouter::router()->reset();
187+
TestRouter::reset();
188188

189189
}
190190

tests/TestRouter.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ public function __construct()
88
static::request()->setHost('testhost.com');
99
}
1010

11+
public static function reset(): void
12+
{
13+
static::$router = null;
14+
}
15+
1116
public static function debugNoReset(string $testUrl, string $testMethod = 'get'): void
1217
{
1318
$request = static::request();

0 commit comments

Comments
 (0)