【问题标题】:How to switch bundle according hostname in symfony2如何在 symfony2 中根据主机名切换捆绑包
【发布时间】:2013-07-03 16:30:33
【问题描述】:

我想继承一个包以仅覆盖一些布局部分,并带有主机名条件。

我的 www.site1.com 的“FirstBundle”已准备就绪。我在 MyApp/config/routing.yml 中配置了主路由

www_site1_com:
  resource: "@FirstBundle/Resources/config/routing.yml"
  prefix:   /

FirstBundle/Resources/config/routing.yml 包含我的完整路由。我需要为 SecondBundle 坚持使用相同的控制器和路由。

然后我创建了应该继承 FirstBundle 的 SecondBundle,但我真的不知道如何告诉路由坚持 www.site2.com 的 SecondBundle。

如果我在 SecondBundle.php 中添加 getParent 方法来强制继承:

class MyAppSecondBundle extends Bundle
{
  public function getParent()
  {
    return 'FirstBundle';
  }
}

我的站点 1 总是显示继承的东西...我不知道如何强制只有站点 2 坚持使用 SecondBundle 而不影响站点 1。

【问题讨论】:

    标签: symfony


    【解决方案1】:

    从 symfony 2.2 开始,您可以根据主机名匹配路由:

    mobile_homepage:
        path:     /
        host:     m.example.com
        defaults: { _controller: AcmeDemoBundle:Main:mobileHomepage }
    
    homepage:
        path:     /
        defaults: { _controller: AcmeDemoBundle:Main:homepage }
    

    the docs

    【讨论】:

    • 我忘了说我需要在不更改控制器的情况下保持相同的路由...复制控制器或路由对我来说不是一个好的解决方案,因为它们太多了...
    猜你喜欢
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多