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) {
|
||||
$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);
|
||||
}
|
||||
|
||||
|
|
|
@ -75,6 +75,7 @@ class ParamConversionEnhancerTest extends UnitTestCase {
|
|||
*/
|
||||
public function testCopyRawVariables() {
|
||||
$route = new Route('/test/{id}');
|
||||
$route->setDefault('node_type', 'page');
|
||||
$defaults = [
|
||||
RouteObjectInterface::ROUTE_OBJECT => $route,
|
||||
'id' => '1',
|
||||
|
@ -90,7 +91,10 @@ class ParamConversionEnhancerTest extends UnitTestCase {
|
|||
|
||||
return $defaults;
|
||||
});
|
||||
$expected = new InputBag(['id' => 1]);
|
||||
$expected = new InputBag([
|
||||
'id' => '1',
|
||||
'node_type' => 'page',
|
||||
]);
|
||||
$result = $this->paramConversionEnhancer->enhance($defaults, new Request());
|
||||
$this->assertEquals($result['_raw_variables'], $expected);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue