我正在努力在我的 Lumen API 中创建有效的 PUT 路由。我的请求到达了正确的路线,但我无法通过$request->all()
.
我发现 PHP 需要读取php://input
流来获取 PUT 正文。这是在 的getContent()
函数中完成的Symfony\Component\HttpFoundation\Request
。但是,此函数被多次调用,并且由于输入缓冲区在读取时被清空,因此在我需要时数据不存在。
我还发现,当我将 Content-Type 标头设置为 text/plain 时,我可以成功 print $request->json()
,但是当我将其设置为 application/json 时,对象为空。
有任何想法吗?
PS:我知道对于 HTML 请求,您应该添加 _method 参数,但由于我不是通过 HTML 执行请求,因此不需要该参数。
编辑:
我的路线:
$app->put('settings', 'SettingController@update');
我的控制器:
class SettingController extends Controller
{
public function update(Request $request)
{
print_r($request->all());
}
}