在symfony中重定向

时间:2015-05-28 15:06:23

标签: symfony

我试图了解这两种方法在symfony中进行重定向是否有任何区别。

1通过不带自定义控制器的配置

正如here所述。

# app/config/routing.yml

# ...

codes:
    path: /codes # redirect /codes to /code
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /code
        permanent: true

2通过自定义控制器中的redirect()方法

正如here所述。

class RedirectsController extends Controller {
    /**
     * @Route("/codes")
     */
    public function codesAction() {
        return $this->redirect('/code', 301); // redirect /codes to /code
    }
}

当我谈到差异时,我的意思是性能,易用性和可维护性。

感谢。

2 个答案:

答案 0 :(得分:0)

在第一种情况下,您不需要创建控制器。您可以从配置中管理所有内容,这是一种便利。 重定向将由RedirectController进行。在性能方面,两种方法没有区别。

如果您需要做的是重定向,那么请使用第一种方法。

答案 1 :(得分:0)

问题是你的第一个解决方案将在不使用特定控制器的情况下重定向,仅使用配置,而第二个解决方案将执行您的操作,然后重定向。这是两个不同的用例,它们不一样。