首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有旋度的Symfony 4控制器中的访问POST值

问带有旋度的Symfony 4控制器中的访问POST值
EN

Stack Overflow用户
提问于 2018-09-15 20:30:44
回答 1查看 1.7K关注 0票数 0

早上好。

我目前正在尝试访问Symfony 4 Controller中来自curl请求的POST数据。

我的控制器如下所示:

代码语言:javascript
复制
class OrderController extends AbstractController  
{  
/**  
 * @Route("/order", name="order")  
 */  
public function index(Request $request)  
{                                                      
    var_dump($request->request->all());die;       

    return $this->json([                                    
        'message' => 'Welcome to your new controller!',     
        'path' => 'src/Controller/OrderController.php',     
    ]);                                                     
    }                                                           
}

当我运行php bin\console server:run并访问浏览器中的localhost/order时,我得到了它应该得到的页面。如果我用

代码语言:javascript
复制
curl http://127.0.0.1:8000/order

我也得到了正确的结果。但是当我试图在curl请求上发送json主体时,在上面的控制器上我只得到一个空数组。

我的请求如下:

代码语言:javascript
复制
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '
{'json':{
"id": "1",
"customer-id": "1",
"items": [
  {
    "product-id": "B102",
    "quantity": "10", 
    "unit-price": "4.99",
    "total": "49.90"
  }
],
"total": "49.90"
}}' http://127.0.0.1:8000/order

知道我做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-15 21:14:42

Request对象将仅通过$request->request方法返回表单参数。如果您想访问JSON主体,则需要使用$request->getContent()。如果该内容是json,您的代码将如下所示:

代码语言:javascript
复制
$json = json_decode($request->getContent(), true);
var_dump($json['json']);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52348619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档