Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symfony2, Is it possible to have two route for one action in a controller?

Tags:

routes

symfony

I have an action inside my controller class and I want two different routes like 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 that I would like to give the route access to some users but the user role are different.

Let's say:

User with supervisor role can access sup_choose_date

User with user role can access user_choose_date

The question is if it is possible to have two different routes for one action? or I have duplicate the code for different routes ?

like image 350
pmoubed Avatar asked Jun 20 '12 20:06

pmoubed


3 Answers

Yes, it is possible when 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 }
like image 142
Samy Dindane Avatar answered Nov 15 '22 10:11

Samy Dindane


Worked for me!

You must set different names; if not, specify explicitly

enter image description here

like image 25
Сергей Шевченко Avatar answered Nov 15 '22 10:11

Сергей Шевченко


I is possible on every kind of format including annotation. It should work as long as you have different name for every route.

like image 31
smentek Avatar answered Nov 15 '22 09:11

smentek