使用 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 而不要重新发明轮子的原因之一)