0
votes

I'd like to define a route 'product_page' which will map to different patterns based on the host. The patterns for each route will be different, but I'd like for the route name to be the same so that I can use the same name in my console commands when generating URLs via the route (based on passed host name). I cannot figure out how to make this happen, since it seems that routes of the same name overwrite previous routes. For example:

product_page:
    pattern:  /product_page_type_1/{id}
    host: domain1.com
    defaults: { _controller: AcmeDemoBundle:Default:index}
    requirements:
        id: '[\d]+'

product_page:
    pattern:  /product_page_type_2/{id}
    host: domain2.com
    defaults: { _controller: AcmeDemoBundle:Default:index}
    requirements:
        id: '[\d]+'

Then, in my console command, I'd like to generate a URL based on the product_page route and host. For example:

//should equal http://domain1.com/product_page_type_1/999
$this->getContainer()->get('router')->generate('product_page', array('id' => 99, 'host' => 'domain1.com'), UrlGenerator::ABSOLUTE_URL)

//should equal http://domain2.com/product_page_type_2/999
$this->getContainer()->get('router')->generate('product_page', array('id' => 99, 'host' => 'domain2.com'), UrlGenerator::ABSOLUTE_URL)

Is this even possible?

1

1 Answers

2
votes

Because your second route is overwriting the first route. They shouldn't be named the same, just name them: domain1_product_page and domain2_product_page or something similar.