4

我在 sf2 中有两个包,每个包都有相同的路由。示例:/博客

捆绑包 A

user_blog:
    pattern:  /blog
    defaults: { _controller: UserBlogBundle:Default:blog }

捆绑 B

team_blog:
    pattern:  /blog
    defaults: { _controller: TeamBlogBundle:Default:blog }

并且使用会话参数我会知道哪个捆绑包将运行请求

对不起,

我想根据会话参数运行正确的包

例子

{{
if($Parameter ='A')
 run user_blog
else
 run team_blog
}}

我做这个:

//src/project/TestBundle
use Symfony\Component\Routing\RouteCollection;

$collection = new RouteCollection();
$req = $this->getRequest();
if($req->server->get('SERVER_NAME') == 'www.domainA.com')
$collection->addCollection($loader->import("@BundleABundle/Resources/config/routing.php"));
else
$collection->addCollection($loader->import("@BundleBBundle/Resources/config/routing.php"));
return $collection;

这是平常的吗?

4

2 回答 2

0

在我看来,每条路线都必须是独一无二的。您应该牢记这一点来构建您的应用程序。否则,我认为您在访问这些路线时可能会出现一些随机行为。

于 2012-07-18T14:18:45.233 回答
0

这在 2.2 版本参数主机上已解决

http://symfony.com/doc/master/components/routing/hostname_pattern.html

Bundle A

user_blog:
    pattern:  /blog
    host: a.example.com
    defaults: { _controller: UserBlogBundle:Default:blog }

Bundle B

team_blog:
    pattern:  /blog
    host: b.example.com
    defaults: { _controller: TeamBlogBundle:Default:blog }
于 2013-03-20T18:34:38.633 回答