【问题标题】:$request->json()->all() return empty Laravel$request->json()->all() 返回空 Laravel
【发布时间】:2021-05-22 14:03:19
【问题描述】:

为什么当我在我的代码下方使用 $request->json()->all() 时我的请求变为空:

$request = new \Illuminate\Http\Request();
$request->setMethod('POST');
$request->query->add(['foo' => 'bar']);
$postData = $request->json()->all();

dd($postData);

结果是:

[]

【问题讨论】:

  • 预期的输出是什么?

标签: json laravel request


【解决方案1】:

要将参数添加到请求对象,请使用 add(),如下所示:

$request = new \Illuminate\Http\Request();
$request->setMethod('POST');

// single items 'test' and '123'
$request->request->add(['test', '123']);

// $key => value
$request->request->add(['test' => '123']); 
 
$postData = $request->all();

dd($postData);

然后输出是这样的:

array:3 [▼
  0 => "test"
  1 => "123"
  "test" => "123"
]

$request->json() 将请求的内容 (Laravel docs) 获取为 json - 在您的情况下为 NULL

您可以运行dd($request) 并查看:

Illuminate\Http\Request {#1796 ▼
  #json: null
  #convertedFiles: []
  #userResolver: null
  #routeResolver: null
  +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1798 ▼
    #parameters: array:1 [▼
      "test" => "123"
    ]
  }
  +request: Symfony\Component\HttpFoundation\ParameterBag {#1795 ▼
    #parameters: array:3 [▼
      0 => "test"
      1 => "123"
      "test" => "123"
    ]
  }
  +query: Symfony\Component\HttpFoundation\InputBag {#1797 ▶}
  +server: Symfony\Component\HttpFoundation\ServerBag {#1779 ▶}
  +files: Symfony\Component\HttpFoundation\FileBag {#1791 ▶}
  +cookies: Symfony\Component\HttpFoundation\InputBag {#1794 ▶}
  +headers: Symfony\Component\HttpFoundation\HeaderBag {#1778 ▶}
  #content: null
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: null
  #requestUri: null
  #baseUrl: null
  #basePath: null
  #method: null
  #format: null
  #session: null
  #locale: null
  #defaultLocale: "en"
  -preferredFormat: null
  -isHostValid: true
  -isForwardedValid: true
  -isSafeContentPreferred: null
  pathInfo: "/"
  requestUri: ""
  baseUrl: ""
  basePath: ""
  method: "POST"
  format: "html"
}

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 2019-01-31
    • 2018-11-17
    • 2020-06-06
    • 2016-12-24
    • 2016-07-05
    • 1970-01-01
    • 2016-11-08
    • 2017-08-24
    相关资源
    最近更新 更多