8000 merged branch Seldaek/route_redirect (PR #3074) · symfony/symfony@009e6d7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 009e6d7

Browse files
committed
merged branch Seldaek/route_redirect (PR #3074)
Commits ------- af32590 [FrameworkBundle] Use only _route_params to generate redirect routes Discussion ---------- [FrameworkBundle] Use only _route_params to generate redirect routes Bug fix: yes Feature addition: no Backwards compatibility break: no Symfony2 tests pass: yes Routes in RedirectController are generated using all request attributes, which is inconvenient since I abuse request attributes to store other things (device types and such) relevant to the app. It renders the RedirectController useless since it adds unrelated query parameters to URLs it creates.
2 parents a3ddc8e + af32590 commit 009e6d7

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ public function redirectAction($route, $permanent = false)
4242
return new Response(null, 410);
4343
}
4444

45-
$attributes = $this->container->get('request')->attributes->all();
46-
unset($attributes['_route'], $attributes['route'], $attributes['permanent'] );
45+
$attributes = $this->container->get('request')->attributes->get('_route_params');
46+
unset($attributes['route'], $attributes['permanent']);
4747

4848
return new RedirectResponse($this->container->get('router')->generate($route, $attributes), $permanent ? 301 : 302);
4949
}

src/Symfony/Bundle/FrameworkBundle/Tests/Controller/RedirectControllerTest.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,18 @@ public function testRoute($permanent, $expectedCode)
4646
$route = 'new-route';
4747
$url = '/redirect-url';
4848
$params = array('additional-parameter' => 'value');
49+
$attributes = array(
50+
'route' => $route,
51+
'permanent' => $permanent,
52+
'_route' => 'current-route',
53+
'_route_params' => array(
54+
'route' => $route,
55+
'permanent' => $permanent,
56+
),
57+
);
58+
$attributes['_route_params'] = $attributes['_route_params'] + $params;
4959

50-
$request->attributes = new ParameterBag(array('route' => $route, '_route' => 'current-route', 'permanent' => $permanent) + $params);
60+
$request->attributes = new ParameterBag($attributes);
5161

5262
$router = $this->getMock('Symfony\Component\Routing\RouterInterface');
5363
$router

0 commit comments

Comments
 (0)
0