Symfony2, is it possible to have two routes for one action in the controller?

I have an action inside my controller class, and I need two different routes, as shown below:

/**
 * Displays a form to create a new entity.
 *
 * @Route("/edit/choose/date", name="user_choose_date")
 * @Route("/supervisory/choose/date", name="sup_choose_date")
 * @Template()
 */
public function chooseDateAction()
{
    return array( );
}

The reason for this I would like to provide access to routes for some users, but the user role is different.

Let's say:

A user with a role supervisorcan accesssup_choose_date

A user with a role usercan accessuser_choose_date

The question is, is it possible to have two different routes for one action? or am I duplicating code for different routes?

+5
source share
2 answers

Yes, this is possible using YAML (or XML) routing.

Example:

sup_choose_date:
    pattern:   /supervisory/choose/date
    defaults:  { _controller: MyBundle:Default:chooseDate }

user_choose_date:
    pattern:   /edit/choose/date
    defaults:  { _controller: MyBundle:Default:chooseDate }
+7
source

I am available for all formats, including annotation. It should work as long as you have a different name for each route.

+2

All Articles