Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建具有相同路径但不同http方法的2个操作Symfony2_Php_Symfony_Routing_Http Method - Fatal编程技术网

Php 如何创建具有相同路径但不同http方法的2个操作Symfony2

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")

我使用symfony路由注释,并且已经将
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),因此需要两种不同的方法。但我发现我愚蠢的回答^^难以置信,我也有同样的问题!用同样的方法。。。这是一个比我想象的更普遍的问题