我在sf2中有两个捆绑包,每个捆绑包都有相同的路径。例如:/ blog
捆绑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;
这是通常的吗?
答案 0 :(得分:0)
在我看来,每条路线必须是唯一的。您应该考虑到这一点来构建您的应用程序。否则,我认为在访问这些路线时可能会出现一些随机行为。
答案 1 :(得分: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 }