Symfony:路径放置方法
有人知道为什么PUT方法在使用PHP Symfony时不起作用吗? 如果我把它换成POST,一切正常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/
/**
* @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;