问题
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 ?
回答1:
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 }
回答2:
I is possible on every kind of format including annotation. It should work as long as you have different name for every route.
回答3:
Worked for me!
You must set different names; if not, specify explicitly
来源:https://stackoverflow.com/questions/11127414/symfony2-is-it-possible-to-have-two-route-for-one-action-in-a-controller