Skip to content

Commit 7789cf2

Browse files
committed
Add a option to specify the request original name
1 parent c7adf7b commit 7789cf2

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

Controller/Annotations/Param.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ abstract class Param
2222
/** @var string */
2323
public $name;
2424
/** @var string */
25+
public $requestName = null;
26+
/** @var string */
2527
public $requirements = '';
2628
/** @var mixed */
2729
public $default = null;

Request/ParamFetcher.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public function get($name, $strict = null)
8181
throw new \InvalidArgumentException(sprintf("No @QueryParam/@RequestParam configuration for parameter '%s'.", $name));
8282
}
8383

84+
/** @var Param $config */
8485
$config = $this->params[$name];
8586
$nullable = $config->nullable;
8687
$default = $config->default;
@@ -93,10 +94,11 @@ public function get($name, $strict = null)
9394
$strict = $config->strict;
9495
}
9596

97+
$requestName = $config->requestName ? $config->requestName : $config->name;
9698
if ($config instanceof RequestParam) {
97-
$param = $this->request->request->get($name, $default);
99+
$param = $this->request->request->get($requestName, $default);
98100
} elseif ($config instanceof QueryParam) {
99-
$param = $this->request->query->get($name, $default);
101+
$param = $this->request->query->get($requestName, $default);
100102
} else {
101103
$param = null;
102104
}

Tests/Request/ParamFetcherTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public function setup()
7676

7777
$annotations['biz'] = new QueryParam;
7878
$annotations['biz']->name = 'biz';
79+
$annotations['biz']->requestName = 'business';
7980
$annotations['biz']->requirements = '\d+';
8081
$annotations['biz']->default = null;
8182
$annotations['biz']->nullable = true;
@@ -330,4 +331,11 @@ public function testExceptionOnNonConfiguredParameter()
330331
$queryFetcher->setController($this->controller);
331332
$queryFetcher->get('none', '42');
332333
}
334+
335+
public function testRequestName()
336+
{
337+
$queryFetcher = $this->getParamFetcher(array('business' => 5));
338+
$queryFetcher->setController($this->controller);
339+
$this->assertEquals(5, $queryFetcher->get('biz'));
340+
}
333341
}

0 commit comments

Comments
 (0)