Issue #3277784 by Tim Bozeman, mrinalini9, larowlan: copyRawVariables should support default route parameters
parent
686537e11e
commit
ca0a26d23b
|
@ -67,6 +67,13 @@ class ParamConversionEnhancer implements EnhancerInterface, EventSubscriberInter
|
||||||
foreach (array_intersect_key($defaults, $variables) as $key => $value) {
|
foreach (array_intersect_key($defaults, $variables) as $key => $value) {
|
||||||
$raw_variables[$key] = $value;
|
$raw_variables[$key] = $value;
|
||||||
}
|
}
|
||||||
|
// Route defaults that do not start with a leading "_" are also
|
||||||
|
// parameters, even if they are not included in path or host patterns.
|
||||||
|
foreach ($route->getDefaults() as $name => $value) {
|
||||||
|
if (!isset($raw_variables[$name]) && substr($name, 0, 1) !== '_') {
|
||||||
|
$raw_variables[$name] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
return new InputBag($raw_variables);
|
return new InputBag($raw_variables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,7 @@ class ParamConversionEnhancerTest extends UnitTestCase {
|
||||||
*/
|
*/
|
||||||
public function testCopyRawVariables() {
|
public function testCopyRawVariables() {
|
||||||
$route = new Route('/test/{id}');
|
$route = new Route('/test/{id}');
|
||||||
|
$route->setDefault('node_type', 'page');
|
||||||
$defaults = [
|
$defaults = [
|
||||||
RouteObjectInterface::ROUTE_OBJECT => $route,
|
RouteObjectInterface::ROUTE_OBJECT => $route,
|
||||||
'id' => '1',
|
'id' => '1',
|
||||||
|
@ -90,7 +91,10 @@ class ParamConversionEnhancerTest extends UnitTestCase {
|
||||||
|
|
||||||
return $defaults;
|
return $defaults;
|
||||||
});
|
});
|
||||||
$expected = new InputBag(['id' => 1]);
|
$expected = new InputBag([
|
||||||
|
'id' => '1',
|
||||||
|
'node_type' => 'page',
|
||||||
|
]);
|
||||||
$result = $this->paramConversionEnhancer->enhance($defaults, new Request());
|
$result = $this->paramConversionEnhancer->enhance($defaults, new Request());
|
||||||
$this->assertEquals($result['_raw_variables'], $expected);
|
$this->assertEquals($result['_raw_variables'], $expected);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue