Skip to content

Commit 6925574

Browse files
committed
Route: fixed bug for constant module & presenter [Closes #216]
1 parent 7e6b48f commit 6925574

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

src/Application/Routers/Route.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,12 @@ public function constructUrl(array $params, Nette\Http\UrlScript $refUrl): ?stri
139139
public function getConstantParameters(): array
140140
{
141141
$res = parent::getConstantParameters();
142-
unset($res['module']);
142+
if (isset($res[self::MODULE_KEY], $res[self::PRESENTER_KEY])) {
143+
$res[self::PRESENTER_KEY] = $res[self::MODULE_KEY] . ':' . $res[self::PRESENTER_KEY];
144+
} elseif (isset($this->getMetadata()[self::MODULE_KEY])) {
145+
unset($res[self::PRESENTER_KEY]);
146+
}
147+
unset($res[self::MODULE_KEY]);
143148
return $res;
144149
}
145150

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\Application\Routers\Route & module fixity.
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Nette\Application\Routers\Route;
10+
use Tester\Assert;
11+
12+
13+
require __DIR__ . '/../bootstrap.php';
14+
15+
16+
$route = new Route('auth', [
17+
'module' => 'Auth',
18+
'presenter' => 'Homepage',
19+
'action' => 'default',
20+
]);
21+
22+
Assert::same(['presenter' => 'Auth:Homepage', 'action' => 'default'], $route->getConstantParameters());
23+
24+
25+
$route = new Route('<module>', [
26+
'presenter' => 'Homepage',
27+
'action' => 'default',
28+
]);
29+
30+
Assert::same(['action' => 'default'], $route->getConstantParameters());
31+
32+
33+
$route = new Route('<presenter>', [
34+
'module' => 'Auth',
35+
'action' => 'default',
36+
]);
37+
38+
Assert::same(['action' => 'default'], $route->getConstantParameters());

0 commit comments

Comments
 (0)