Php 如何创建具有相同路径但不同http方法的2个操作Symfony2
我使用symfony路由注释,并且已经将Php 如何创建具有相同路径但不同http方法的2个操作Symfony2,php,symfony,routing,http-method,Php,Symfony,Routing,Http Method,我使用symfony路由注释,并且已经将http\u方法\u覆盖设置为true 我想根据http方法创建两个不同的操作,但行为不同,如下所示: /** * Event controller. * * @Route("/event") */ class EventController extends Controller { /** * Lists all Event entities. * * @Route("/", name="event")
http\u方法\u覆盖
设置为true
我想根据http方法创建两个不同的操作,但行为不同,如下所示:
/**
* Event controller.
*
* @Route("/event")
*/
class EventController extends Controller
{
/**
* Lists all Event entities.
*
* @Route("/", name="event")
* @Method("GET")
* @Template() // default template (index.html.twig)
*/
public function indexAction()
{
...
}
/**
* Creates a new Event entity.
*
* @Route("/", name="event_create")
* @Method("POST")
* @Template("...") // a special template new.html.twig
*/
public function createAction(Request $request)
{
...
}
但是,当我尝试访问/event/时,有一个405页显示:
未找到“GET/event/”的路由:不允许使用方法(Allow:POST)
当我尝试使用php应用程序/控制台路由器:debug
列出我的路由时:
event_create POST ANY ANY /event/
event GET ANY ANY /event/week/{timestamp}
event_new GET ANY ANY /event/new
event_show GET ANY ANY /event/{id}
event_edit GET ANY ANY /event/{id}/edit
event_update PUT ANY ANY /event/{id}
event_delete DELETE ANY ANY /event/{id}
很抱歉,我刚刚读到我的问题时意识到,下面另一个路径为/event/week/{timestamp}的方法也被命名为“event”:/
因此,我将此方法重命名为event_week,它可以正常工作 您也可以只创建一个路由,并将这两个方法添加到一起,如下面的
@Method({“GET”,“POST”})
Thx,用于您的快速回答gp\u sflover,但我需要获得两种不同的行为(list和create),因此需要两种不同的方法。但我发现我愚蠢的回答^^难以置信,我也有同样的问题!用同样的方法。。。这是一个比我想象的更普遍的问题