Symfony:路径放置方法

Symfony:路径放置方法,symfony,Symfony,有人知道为什么PUT方法在使用PHP Symfony时不起作用吗? 如果我把它换成POST,一切正常 /** * @Route("/api/product/update", name="product_udpate", methods = {"PUT"}) */ 我在读这样的变量 $request = Request::createFromGlobals(); echo $request->request->get('name'); 错误: 未找到PUT/

有人知道为什么PUT方法在使用PHP Symfony时不起作用吗? 如果我把它换成POST,一切正常

    /**
    * @Route("/api/product/update", name="product_udpate", methods = {"PUT"})
    */
我在读这样的变量

$request = Request::createFromGlobals();
echo $request->request->get('name');
错误:
未找到PUT/api/product/update/23 404的路径,未找到symfony文档中所述的路径

不幸的是,生活并不是这么简单,因为大多数浏览器不支持通过HTML表单中的method属性发送PUT和DELETE请求。幸运的是,Symfony为您提供了一种解决此限制的简单方法。通过在查询字符串或HTTP请求的参数中包含_方法参数,Symfony将在匹配路由时使用此方法

所以你必须像这样伪造这个方法:

<form action='your route'>
  <input type='hidden' name='_method' value='PUT'>
  //do something.......
</form>

如symfony文件所述

不幸的是,生活并不是这么简单,因为大多数浏览器不支持通过HTML表单中的method属性发送PUT和DELETE请求。幸运的是,Symfony为您提供了一种解决此限制的简单方法。通过在查询字符串或HTTP请求的参数中包含_方法参数,Symfony将在匹配路由时使用此方法

所以你必须像这样伪造这个方法:

<form action='your route'>
  <input type='hidden' name='_method' value='PUT'>
  //do something.......
</form>

问题是您没有正确创建路线。基本上,您需要将id添加到路由

/** *@Route/api/product/update/{id},name=product\u udpate,methods={PUT} */ 公共函数updateActionRequest$request$id { //你的逻辑在这里 $name=$request->get'name'; }
问题是您没有正确创建路线。基本上,您需要将id添加到路由

/** *@Route/api/product/update/{id},name=product\u udpate,methods={PUT} */ 公共函数updateActionRequest$request$id { //你的逻辑在这里 $name=$request->get'name'; }
由于未正确配置路由,因此出现以下错误

error: No route found for "PUT /api/product/update/23" (404 Not Found)
如果你想把id和你想要的url一起添加,你必须在你的路线中定义。 因此,您可以更新您的路线:

  /**
    * @Route("/api/product/update/{id}", name="product_udpate", methods = {"PUT"}, defaults={"id"=null})
    */


由于未正确配置路由,因此出现以下错误

error: No route found for "PUT /api/product/update/23" (404 Not Found)
如果你想把id和你想要的url一起添加,你必须在你的路线中定义。 因此,您可以更新您的路线:

  /**
    * @Route("/api/product/update/{id}", name="product_udpate", methods = {"PUT"}, defaults={"id"=null})
    */


您在修改后清除了缓存吗?我刚刚尝试过,但也不起作用:-您在修改后清除了缓存吗?我刚刚尝试过,但也不起作用:-我正在创建一个restAPI我正在发送数据,并附带以下命令:Request::enablethttpmethodparameteroverride$请求=请求::createFromGlobals;我正在创建一个restAPI,我正在用POSTMANTry发送数据:Request::enableHttpMethodParameterOverride$请求=请求::createFromGlobals;