使用 YAML 的 Silex 重定向
Silex Redirect with YAML
在 Symfony 2 中我可以:
root:
pattern: /
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /login
permanent: true
但我使用 silex(带有 YAML)所以没有 FrameworkBundle:Redirect:urlRedirect
。
如何在 Silex 中使用 YAML 制作简单的路由重定向?
AFAIK,Silex 没有这样的选项,但您可以 return 来自您的 / 路由的重定向响应(没有 yaml):
<?php
// your controller.php file or something similar
// ...
$app->get('/', function() use ($app) {
// assuming you named your /login route 'login' here
return new RedirectResponse($app['url_generator']->generate('login'), 301);
})
->bind('home');
如果你坚持走 yaml 路线(你不应该,如果你需要 FrameworkBundle,你应该使用 Symfony 而不是 Silex)你总是可以创建自己的 RedirectController with a urlRedirectMethod(注意解析控制器参数不会直接工作,这是我建议你使用 Symfony 而不要重新发明轮子的原因之一)
在 Symfony 2 中我可以:
root:
pattern: /
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /login
permanent: true
但我使用 silex(带有 YAML)所以没有 FrameworkBundle:Redirect:urlRedirect
。
如何在 Silex 中使用 YAML 制作简单的路由重定向?
AFAIK,Silex 没有这样的选项,但您可以 return 来自您的 / 路由的重定向响应(没有 yaml):
<?php
// your controller.php file or something similar
// ...
$app->get('/', function() use ($app) {
// assuming you named your /login route 'login' here
return new RedirectResponse($app['url_generator']->generate('login'), 301);
})
->bind('home');
如果你坚持走 yaml 路线(你不应该,如果你需要 FrameworkBundle,你应该使用 Symfony 而不是 Silex)你总是可以创建自己的 RedirectController with a urlRedirectMethod(注意解析控制器参数不会直接工作,这是我建议你使用 Symfony 而不要重新发明轮子的原因之一)