我正在尝试从symfony中的请求对象检索JSON中的表单数据。我熟悉使用POST和GET方法,以及使用$request->request->get('something')
检索数据,但这不适用于PATCH。 (返回null,表示“某物”下不存在任何内容。)
使用以下命令转储变量的内容时
var_dump($request->getcontent());
我的JSON显示在一些XML标记之后,但我无法提取它。
有什么方法可以像使用POST方法那样轻松获得它吗?
$form =$this->createForm(ProjectUpdateType::class, $project);
$data = json_decode($request->request->get('project'),true);
$form->submit($data, true);
$data
使用此方法为空,因为
$request->request->get('project')
是null
。
但是正如我所提到的,JSON在某个地方,但是我不知道如何提取它。
预先谢谢你!
<pre class='xdebug-var-dump' dir='ltr'>
<small>/vagrant/src/Controller/ProjectController.php:129:</small>
<small>string</small>
<font color='#cc0000'>'-----------------------------100229165918779178541068782244 Content-Disposition: form-data; name="project" {"title":"newTitle","description":"NewDescription","priority":false} -----------------------------100229165918779178541068782244-- '</font>
<i>(length=244)</i>
</pre>
答案 0 :(得分:0)
JSON存在于主体中,$request->getContent()
是获取它的唯一正确方法。这里的问题不在于您无法获取JSON-而是响应中包含的内容不只是JSON对象,换句话说,就是无效的JSON。但是,如果实际上使用的API应该在XML文档中返回JSON,那么您必须首先解析该XML,例如使用SimpleXML。